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