导轨夹具与模拟

时间:2010-05-26 22:09:52

标签: ruby-on-rails fixtures mocking

我正在开发一个Rails应用程序,我只是在与我的同事谈论我们在测试中混合使用了夹具和模拟,我们正在使用黄瓜和Rspec。问题是:何时应该使用每一个?

1 个答案:

答案 0 :(得分:14)

当使用真实对象是不切实际/不必要的时候,我会使用模拟对象。让我们假设您需要通过邮政编码调用一些远程API,例如地址查找器。您可能希望模拟对象,以便每次运行测试时都不会对其进行调用。还有其他原因,例如提高速度,要求数据在需要确切响应的位置发生变化,或者可能尚未存在。它允许您单独测试事物,因为您可以确定当您在此模拟对象上调用这些方法时,您将得到这个并且您实际上不需要运行代码,因为这个测试并不重要。

如果您使用灯具,您将拥有一个真实的对象,并且将调用方法等并运行其代码,除非您将这些方法存根,这是另一个问题。

希望有所帮助。有一个很好的窥视代码(http://peepcode.com/products/rspec-mocks-and-models)有关模拟和存根,也许可以查看它。