我有以下代碼:注射單次使用的對象插入
<?php
class X
{
public function do($url)
{
$httpRequest = new \HttpRequest\Curl($url, $this->getOptions());
$httpRequest->fire();
// etc.
}
// ...
}
爲了能夠單元測試這個類,我想注入嘲笑HttpRequest類。其中一種方法如下:
<?php
class X
{
private $httpRequestClass;
public function __construct($httpRequestClass = '\HttpRequest\Curl')
{
$this->httpRequestClass = $httpRequestClass;
}
public function do($url)
{
$httpRequest = new $this->httpRequestClass($url, $this->getOptions());
$httpRequest->fire();
// etc.
}
// ...
}
但這看起來不對。任何其他想法?
你能解釋一下你爲什麼要選擇這個選項,如何比其他答案中的方法更好? – raina77ow
是的,你說得對 - 我沒有解釋。幹得好。 – moteutsch