我正在尝试使用OCMock来测试我的应用。但我很困惑,我们应该在哪里使用expect和在哪里使用存根?有人可以帮忙吗?
答案 0 :(得分:17)
基本区别在于:expect
必须发生的事情,以及可能发生的stub
事情。
模拟对象有两种失败方式:调用意外/未调试方法,或者不调用预期方法。
verify
时(通常在测试结束时),它会检查以确保实际调用您预期的所有方法。如果没有,你的测试将失败。有几种类型的模拟可以改变这种行为:漂亮的模拟和部分模拟。好的模拟会阻止您使用存根方法 - 基本上它们会发生意外的调用。部分模拟是拦截发送到实际对象的消息的一种方式。您期望的任何消息或部分模拟的存根将被发送到模拟对象。所有其他消息都将发送到实际对象。对于好的模拟和部分模拟,您不会在意外调用(上面的规则#1)上测试失败。