【发布时间】:2012-09-12 10:41:50
【问题描述】:
RSpec 中的stub_model 和mock_model 有什么区别?到目前为止,我知道存根只是用来防止调用真正的方法并返回一个预定义的值,而模拟实际上是期望并要求在接收者上调用该方法。
我也知道这些存根/模拟用于允许隔离测试,例如在不接触模型的控制器中。但是我仍然对这两种方法感到困惑,究竟是什么时候使用的?细节和例子将不胜感激。非常感谢!
【问题讨论】:
-
不确定这是否适用于您的问题,但对我有帮助的一件事是意识到 rspec“模拟”用于创建假对象,而“存根”用于创建假方法。请注意,我说的不是
stub_model或mock_model,而是更通用的模拟和存根术语。
标签: ruby-on-rails ruby-on-rails-3 rspec rspec2 rspec-rails