【问题标题】:What is the difference in OCMock expect and stub methods?OCMock 的期望和存根方法有什么区别?
【发布时间】:2012-06-19 07:17:29
【问题描述】:

我正在尝试使用 OCMock 来测试我的应用。但是我很困惑我们应该在哪里使用期望以及在哪里使用存根?有人可以帮忙吗?

【问题讨论】:

    标签: unit-testing expect stub ocmock


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 2011-03-28
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多