Bak*_*lov 6 phpunit mocking expectations
有没有办法告诉phpunit模拟对象,如果没有正式定义的期望,永远不要指望方法调用?
Cyp*_*ian 13
在我看来,从来没有想过对每种方法都没有期望.所以phpunit没有任何功能.只有当你想要完全确保不会调用某些方法时,才能使用"never"期望.
无论如何,你可以使用一些匹配器来更接近你的目标.例子:
永远不要期望所有对象的方法(如果将调用任何模拟方法,则会失败):
$mock->expects($this->never())
->method($this->anything());
Run Code Online (Sandbox Code Playgroud)
因此,例如,您可以测试某个对象除了经过测试的方法之外不会调用任何方法:
$mock = $this->getMock('Some\Tested\Class', array('testedMethod'));
$mock->expects($this->never())
->method($this->anything());
Run Code Online (Sandbox Code Playgroud)
您也可以尝试使用其他匹配器,例如.matchesRegularExpression:
$mock->expects($this->never())
->method($this->matchesRegularExpression('/get.*/'));
Run Code Online (Sandbox Code Playgroud)
例如,如果将调用任何getter,则上面将失败.
我知道这不完全是你想要的,但我担心phpunit没有这样的解决方案.