如果没有正式定义的期望,有没有办法告诉 phpunit 模拟对象永远不要期望方法调用?
在我看来,不要对每种方法都抱有期望是没有道理的。所以 phpunit 没有任何功能。仅当您想完全确保某些方法不会被调用时,才应使用“从不”期望。
无论如何,你可以使用一些匹配器来接近你的目标。例子:
永远不要期望所有对象的方法(如果调用任何模拟方法,则会失败):
$mock->expects($this->never())
->method($this->anything());
因此,例如,您可以测试某些对象不会调用除测试方法之外的任何方法:
$mock = $this->getMock('Some\Tested\Class', array('testedMethod'));
$mock->expects($this->never())
->method($this->anything());
您也可以尝试使用另一个匹配器,例如。matchesRegularExpression
:
$mock->expects($this->never())
->method($this->matchesRegularExpression('/get.*/'));
例如,如果调用任何 getter,上面的方法将会失败。
我知道这并不完全是您想要的,但恐怕 phpunit 没有这样的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)