検索文字列を使用してスーパーマーケットを検索し、対応するアイテムを返すメソッド「getItem($itemNo)」を持つ「Search」クラスを取り込むクラスのテストを作成しています。
だから、このようなビット:
class MyClass
{
public function __construct(Search $search) {
$item0 = $search->getItem(0);
$item1 = $search->getItem(1);
// etc... you get the picture
}
}
テストを行うたびにスーパーマーケットを検索したくないので、この Search クラスをモックしたいと思います。
だから私は書いた:
class MyClassTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
$searchResults=$this->getMockBuilder('Search')
//Because the constructor takes in a search string:
->disableOriginalConstructor()
->getMock();
$pseudoSupermarketItem=array( "SearchResult1", "SearchResult2", etc...);
$this->searchResult
->expects($this->any())
->method('getItem')
->with(/*WHAT DO I PUT HERE SO THAT THE METHOD WILL TAKE IN A NUMBER*/)
->will($this->returnValue($pseudoSupermarketItem[/* THE NUMBER THAT WAS PUT IN */]));
}
}
コードでわかるように、MyClass に示されているように、モック メソッドが整数を取り、対応する pseudoSupermarketItem 文字列を返すようにしたいと考えています。これまでのところ、これを実現する方法がわかりません。助けていただければ幸いです。