我正在开发一个 Rails 应用程序,我刚刚和我的同事谈论我们在测试中混合了固定装置和模拟,我们正在使用 cucumber 和 Rspec 进行测试。问题是:什么时候应该使用每一个?
问问题
5096 次
1 回答
18
当使用真实对象不切实际/没有必要时,我会使用模拟对象。例如,您需要通过邮政编码调用一些远程 API,例如地址查找器。您可能想要模拟该对象,以便每次运行测试时都不会实际调用它。还有其他原因,例如提高速度,在您需要准确响应或可能尚不存在的地方要求更改数据。它允许您单独测试事物,因为您可以确定当您在这个模拟对象上调用这些方法时,您将得到它,并且您实际上不需要运行代码,因为对于这个测试它并不重要。
如果您使用固定装置,您将拥有一个真实的对象,并且将调用方法等并运行它们的代码,除非您当然将方法存根,这是另一个问题。
希望能有所帮助。关于模拟和存根有一个很好的窥视代码(http://peepcode.com/products/rspec-mocks-and-models),也许可以查看一下。
于 2010-05-27T09:31:59.720 回答