私は模擬したいインターフェイスがあります。私はそのインターフェースの実装を模擬することができますが、インターフェースを模擬する方法はありますか?PHPUnitでインタフェース実装を模擬することはできますか?
<?php
require __DIR__ . '/../vendor/autoload.php';
use My\Http\IClient as IHttpClient; // The interface
use My\SomethingElse\Client as SomethingElseClient;
class SomethingElseClientTest extends PHPUnit_Framework_TestCase {
public function testPost() {
$url = 'some_url';
$http_client = $this->getMockBuilder('Cpm\Http\IClient');
$something_else = new SomethingElseClient($http_client, $url);
}
}
私はここに来ることはある:
1) SomethingElseTest::testPost
Argument 1 passed to Cpm\SomethingElse\Client::__construct() must be an instance of
My\Http\IClient, instance of PHPUnit_Framework_MockObject_MockBuilder given, called in
$PATH_TO_PHP_TEST_FILE on line $NUMBER and defined
興味深いことに、PHPUnit, mocked interfaces, and instanceofが、これはうまくいくかもしれないことをお勧め。
あなたが他の質問、それは '使用されていることを誤解している - あなたがそうであるように、'> getMockBuilder() - - 、それはあなたのようである> getMock() 'ではありません'あなたの問題への答えも見つけました。しかし、IIRCはここにあなたの質問の重複も存在しますが、私は今すぐ見つけることができません。興味深いもの: – hakre
私は私の検索でそれを見つけることができませんでした。編集していただきありがとうございます。 –
あなたはあなたの質問が回答とマークされるようにあなたの答えを受け入れることもできます。 – hakre