Iva*_*cev 5 php phpunit mockery
我可以以某种方式更新特定的shouldReceive的shouldReturn值吗?
例如,我有几个测试使用一个返回值,只有一个使用一些其他返回值.
所以我把它放在setUp中:
$this->someDependency->shouldReceive('someMethod')->andReturn(0);
Run Code Online (Sandbox Code Playgroud)
如果我把它放在特定的测试用例中:
$this->someDependency->shouldReceive('someMethod')->andReturn(1);
Run Code Online (Sandbox Code Playgroud)
它将被忽略,并返回0.
我将这种移动模拟"修复"到所有测试并从setUp中删除.但我不喜欢那个代码重复.
这主要是风格问题。您可以在测试调用的辅助函数中轻松创建一组“默认”模拟,然后创建一个更明确的替代版本来以不同的方式设置它们。
您还可以在该帮助程序中为给定值提供一个函数参数,以从特定模拟返回。
有些人认为,除了一些非常常见的设置之外,每个测试都应该完全相互独立,并且应该在其内部完成所有事情。这确实使正在发生的事情变得明确(非常清楚、明显正在发生的事情) - 但可能会导致代码重复。然而,如果您不想重复太多,那是您的选择。
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |