Ana*_*and 29 ruby ruby-on-rails mocking ruby-on-rails-3
我真的不明白Mocks和Stubs是什么.我想知道我们在测试用例中何时,为何以及如何使用Mocks.我知道Ruby on Rails中的Mocks和Stubs有很好的框架,但不知道目的,我不愿意在我的应用程序中使用它们.
你能澄清一下Mocks和Stubs吗?请帮忙.
nat*_*vda 64
我非常简单的答案是:
我们两个都试图实现相同的目标:我们希望单独测试特定的单元(模型/视图/控制器/模块).例如,当我们测试控制器时,我们不想测试我们的模型,所以我们使用模拟.我们希望确保调用正确的方法,例如find.所以在我们的模拟器上,我们有一个存根,它将返回预定义的东西,而不会实际进入数据库.
因此,我们测试期望:我们期望被调用的方法(在其他单元上),而不实际调用它们.对该特定方法的测试应该已经在其自己的测试中进行了介绍.
模拟用于基于交互的测试来验证行为。通过模拟,您可以断言被测试的方法调用了另一个方法。例如,我可能想确保控制器对象调用存储库来获取一些数据。
存根用于基于状态的测试来设置特定的应用程序状态。与模拟不同,您不必担心是否进行了调用。例如,如果您正在测试某些存储库代码,您可能需要设置一个存根方法以确保存储库在数据库连接关闭时正确处理这种情况。
| 归档时间: |
|
| 查看次数: |
15994 次 |
| 最近记录: |