Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 猕猴桃:mock和nullMock的具体区别?_Ios_Unit Testing_Testing_Tdd_Kiwi - Fatal编程技术网

Ios 猕猴桃:mock和nullMock的具体区别?

Ios 猕猴桃:mock和nullMock的具体区别?,ios,unit-testing,testing,tdd,kiwi,Ios,Unit Testing,Testing,Tdd,Kiwi,我在一个项目中使用Kiwi,不太清楚什么时候使用mock和nullMock。以下是Kiwi文件目前提供的内容: 普通模拟对象在收到请求时将引发异常 它不期望的选择器或消息模式。预期消息 在存根或接收期望时自动添加到模拟 用于模拟 如果您不关心mock接收其他消息,并且不希望 要引发异常,请使用null模拟,也称为null 反对 这种差异将在什么样的情况下发挥作用?空模拟具有响应发送给它们的每个可能消息的良好功能,这意味着您不需要手动设置将在该模拟上调用的每个方法。常规模拟没有这个功能,如果要将它

我在一个项目中使用Kiwi,不太清楚什么时候使用mock和nullMock。以下是Kiwi文件目前提供的内容:

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

如果您不关心mock接收其他消息,并且不希望 要引发异常,请使用null模拟,也称为null 反对


这种差异将在什么样的情况下发挥作用?

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

大多数情况下,您将使用null mock,因为如果调用了某个方法,您通常会感兴趣,因为您正在其他测试中对mock上的其他方法进行测试

这既有优点也有缺点:

使用空模拟的测试可能会隐藏细微的错误,因为您可能会忘记测试由其他方法之一触发的角落案例 使用null mock的测试开发得更快,因为您不必跟踪被测试方法调用的每个方法,这也不好,因为您在测试和代码之间创建了一种强大的关系,这使得重构更加困难