OCMock 预期方法和存根方法有什么区别



我正在尝试使用 OCMock 来测试我的应用程序。但是我很困惑我们应该在哪里使用期望以及在哪里使用存根?谁能帮忙?

基本区别在于:你expect必须发生的事情,stub可能发生的事情。

模拟对象失败的方式有两种:调用意外/未存根方法,或者不调用预期方法。

  1. 意外调用。当模拟对象收到尚未存根或预期的消息时,它会立即引发异常,并且测试失败。
  2. 预期的调用。当您在模拟上调用verify时(通常在测试结束时),它会检查以确保您期望的所有方法都实际调用。如果没有,您的测试将失败。

有几种类型的模拟可以改变这种行为:漂亮的模拟和部分模拟。漂亮的模拟可以防止你不得不存根方法 - 基本上它们允许意外调用发生。部分模拟是一种拦截发送到实际对象的消息的方法。您期望的任何消息或部分模拟上的存根都将发送到模拟对象。所有其他消息都发送到实际对象。对于漂亮的模拟和部分模拟,您不会在意外调用时遇到测试失败(上面的规则 #1)。

最新更新