lev*_*nis 5 unit-testing moq mocking nsubstitute
NSubstitute是否有相当于MOQ的VerifyAll电话?我想验证我希望在所有替代品中接收的所有调用实际上都被调用,理想情况是在单个TearDown方法中调用.我目前正在测试中单独验证每个接听的电话,这并不理想.对于初学者来说,如果没有单独明确验证,那么在替代品上设置但实际上没有被调用的任何调用都将通过网络传输.
你所描述的是严格模拟的行为.根据定义,严格的模拟只允许您明确配置和期望的内容.这产生了趋于破裂,很多时候,因为你的代码的变化非常脆的测试,因此,如果使用严格的模拟考试都望而却步,而不是新的框架,如NSubstitute或FakeItEasy支持在所有.
我建议简单地为你需要验证的每个方法创建两个测试:一个测试验证某个方法被调用,然后是另一个,在同一场景下验证其他方法没有被调用.因此,如果您的逻辑发生更改,并且其中一个方法在应该调用/未调用时,您将只会打破一个测试.
NSubstitute适用于AAA风格测试,不适用于录制/重播.因此,它不支持它们.
我知道这已经很老了,我不确定我属于宽松与严格的哪一边,但对于 NSubstitute,您可以通过以下方式实现这一点(xUnit 风格):
Assert.Empty(_logger.ReceivedCalls());
Run Code Online (Sandbox Code Playgroud)
它向您显示特定模拟所收到的所有呼叫,因此您只需确保该数字为 0。这可能是比以前更新的功能,但希望确保它存在!:)
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |