例如,我有一个模拟类,如下:
$mock= $this->getMockBuilder("SomeClass")->disableOriginalConstructor()->getMock();
$mock->expects($this->any())
->method("someMethod")
->will($this->returnValue("RETURN VALUE"));
someMethod
的唯一参数是数组$arr
。
我想做的是首次召集someMethod
时返回$arr[0]
,第二次$arr[1]
等。
$arr
的大小是动态的。
如果可能的话,任何想法如何实现?
$mock->expects($this->any())
->method("someMethod")
->will($this->onConsecutiveCalls(1, 2, 3));
使用OnConsecutiveCalls,您可以为每个呼叫的呼叫设置一个返回值。第一个呼叫返回1.第二个呼叫2.第三个呼叫3。