Varien_Http_Client
次のように、Magento 拡張機能から http リクエストを作成するために使用します。
public function callApi(…)
{
<SNIP>
// Set default factory adapter to socket in case curl isn't installed.
$client = new Varien_Http_Client($apiUri, array(
'adapter' => 'Zend_Http_Client_Adapter_Socket',
'timeout' => $timeout,
));
$client->setRawData($xmlDoc->saveXML())->setEncType('text/xml');
$response = $client->request($method);
$results = '';
if ($response->isSuccessful()) {
$results = $response->getBody();
}
return $results;
}
の内部のテストを避けるべきであることは理解していVarien_Http_Client
ます。むしろ、正しい入力を送信し、その出力を正しく処理していることをテストする必要があります。簡単にモックVarien_Http_Client
できますが、このコードをリファクタリングしてVarien_Http_Client
をそのモックに置き換えても、コンストラクターが によって呼び出されるため、コンストラクターが予想される引数で呼び出されたことを一般的に*テストする方法がわかりませんPHPUnit::getMock
。
モックオブジェクトは必要ありません。モッククラスが必要です。コンストラクターが予想される引数で呼び出されたことをテストするにはどうすればよいですか?
* (この場合、私は に特有の問題を回避する方法を知っていますVarien_Http_Client
が、より不透明なサードパーティ コードで何ができるでしょうか?)