我有一个类想在稍后的测试中模拟:
class Original {
function calculate($a) { ... }
}
在测试中:
$mock = $this->getMock('Original',['calculate']);
$mock->expcets($this->any())
->will($this->returnValueMap([
[1,'ABC'],
[2,'BCD']
// somehow tell $mock to call the original calculate() here
);
我想告诉 $mock
在特定条件下回退到原始的 calculate()
,例如,如果参数不匹配任何提供的检查。据我阅读 PhpUnit 代码了解到,如果未找到匹配项,调用程序将返回 null :-?
最佳答案
$mock = $this->getMockBuilder(Original::class)
->setMethodsExcept(['calculate'])->disableOriginalConstructor()
->getMock();
无论如何,这将调用原始的计算函数。
关于php - 我如何告诉 mock 在某些情况下调用原始方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18944262/