你可以结合phpunit"完全"和"在"电话?

3 phpunit

我有一个我在测试中使用的模拟类,我正在寻找一种方法来同时确保单个方法被调用两次并且每个调用使用不同的参数.我的代码是这样的:

$mocked->expects($this->at(0))->method('mockedMethod')->with($this->equalsTo(123);
$mocked->expects($this->at(1))->method('mockedMethod')->with($this->equalsTo(456);
Run Code Online (Sandbox Code Playgroud)

如果对mockedMethod进行第三次调用,无论参数如何,我都希望断言失败.

小智 5

我迟到了,但希望这有助于正在寻找的人.是的,你可以在()和完全()组合.在您的示例中,它看起来如下所示:

$mocked->expects($this->at(0))->method('mockedMethod')->with($this->equalsTo(123);
$mocked->expects($this->at(1))->method('mockedMethod')->with($this->equalsTo(456);
$mocked->expects($this->exactly(2))->method('mockedMethod');
Run Code Online (Sandbox Code Playgroud)