我有一个简单的用例。我想要一个 setUp 方法,它会导致我的模拟对象返回一个默认值:
$this->myservice
->expects($this->any())
->method('checkUniqueness')
->will($this->returnValue(true));
但是在一些测试中,我想返回一个不同的值:
$this->myservice
->expects($this->exactly(1))
->method('checkUniqueness')
->will($this->returnValue(false));
我过去曾在 C++ 中使用过 GoogleMock,它有“returnByDefault”或其他东西来处理它。我不知道这在 PHPUnit 中是否可行(没有 api 文档,而且代码很难通读以找到我想要的东西)。
现在我不能只更改$this->myservice
为一个新的模拟,因为在设置中,我将它传递给其他需要模拟或测试的东西。
我唯一的其他解决方案是我失去了设置的好处,而是必须为每次测试建立所有的模拟。