【发布时间】:2018-09-05 19:36:47
【问题描述】:
我有一个简单的用例。我想要一个 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 更改为新的模拟,因为在设置中,我将它传递给其他需要模拟或测试的东西。
我唯一的其他解决方案是我失去了设置的好处,而不得不为每次测试构建所有模拟。
【问题讨论】: