在RSpec中stub_model和mock_model有什么区别?到目前为止,我知道存根被用来阻止真正的方法被调用并返回一个预定义的值,而mock实际上是预期的,并且要求在接收器上调用该方法.
我也知道这些存根/模拟被用于允许孤立的测试,如控制器中没有触摸模型.但是,我仍然对这两种方法感到困惑,当时每个方法都被使用?细节和例子将非常感谢.非常感谢!
解决方法
stub_model
The stub_model method generates an instance of a Active Model model.
While you can use stub_model in any example (model,view,controller,helper),it is especially useful in view examples,which are inherently more state-based than interaction-based.
mock_model
The mock_model method generates a test double that acts like an Active Model model. This is different from the stub_model method which generates an instance of a real ActiveModel class.
The benefit of mock_model over stub_model is that its a true double,so the examples are not dependent on the behaviour (or mis-behaviour),or even the existence of any other code. If you’re working on a controller spec and you need a model that doesn’t exist,you can pass mock_model a string and the generated object will act as though its an instance of the class named by that string.
rspec docs:stub_model和mock_model
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|