我在一个项目中使用Kiwi,并不清楚何时使用mock
与nullMock
。以下是Kiwi的文档目前提供的内容:
普通模拟对象在收到异常时会引发异常 它不期望的选择器或消息模式。预期的消息 在存根或接收期望时自动添加到模拟中 用于模拟。
如果你不关心模拟接收其他消息,并且不想要 要引发的异常,然后使用null mock(也称为null) 对象)。
这种差异会起到什么样的作用呢?
答案 0 :(得分:0)
Null模拟具有响应发送给它们的每个可能消息的好功能,这意味着您不需要手动设置将在该模拟上调用的每个方法。常规模拟没有这个,如果你将它们作为依赖项注入它们,你需要准备它们。
大多数情况下你会使用null mock
因为你通常会对调用某个方法感兴趣,因为无论如何你在其他测试中测试模拟的其他方法。
这带来了优点和缺点:
null mocks
进行的测试可能会隐藏细微的错误,因为您可能会忘记测试由其他“其他”方法触发的角落案例null mocks
的测试开发得更快,因为您不必跟踪测试方法调用的每个方法,这也不好,因为您在测试和代码之间建立了强关系,这使得重构更难