Kiwi:mock和nullMock之间的具体区别?

时间:2015-04-23 22:50:43

标签: ios unit-testing testing tdd kiwi

我在一个项目中使用Kiwi,并不清楚何时使用mocknullMock。以下是Kiwi的文档目前提供的内容:

  

普通模拟对象在收到异常时会引发异常   它不期望的选择器或消息模式。预期的消息   在存根或接收期望时自动添加到模拟中   用于模拟。

     

如果你不关心模拟接收其他消息,并且不想要   要引发的异常,然后使用null mock(也称为null)   对象)。

这种差异会起到什么样的作用呢?

1 个答案:

答案 0 :(得分:0)

Null模拟具有响应发送给它们的每个可能消息的好功能,这意味着您不需要手动设置将在该模拟上调用的每个方法。常规模拟没有这个,如果你将它们作为依赖项注入它们,你需要准备它们。

大多数情况下你会使用null mock因为你通常会对调用某个方法感兴趣,因为无论如何你在其他测试中测试模拟的其他方法。

这带来了优点和缺点:

  • 使用null mocks进行的测试可能会隐藏细微的错误,因为您可能会忘记测试由其他“其他”方法触发的角落案例
  • 使用null mocks的测试开发得更快,因为您不必跟踪测试方法调用的每个方法,这也不好,因为您在测试和代码之间建立了强关系,这使得重构更难