可以使用默认属性值创建模拟吗?我不确定这个问题究竟是什么意思。两种可能性:
如果对象t=Movie.find(10)
,然后我说m=mock(t)
,是否会自动继承t的所有属性值?
有没有办法创建一个带有默认属性的模拟对象,这样我们每次使用它时都可以克隆它,而不必通过系列存根到"initialize"
那些属性?
感谢您的帮助。
答案 0 :(得分:1)
说到1)它没有意义。如果在测试中你可以通过Movie.find(10)
访问真实对象,则不必使用模拟。假设你正在使用rspec_mocks
,并且你要编写一个声明特定方法被调用的断言,你可以简单地写:
t = Movie.find(10)
t.should_receive(:foo)
同时检查一下:https://www.relishapp.com/rspec/rspec-rails/v/2-11/docs/mocks/mock-model 这个https://www.relishapp.com/rspec/rspec-rails/v/2-11/docs/mocks/stub-model
非常有用的帮助器,用于在规范中模拟AR / Mongoid和其他模型。
与factory_girl
一起,您可以在此模拟上设置属性,例如movie = mock_model(Movie, FactoryGirl.attributes_for(:move))