可以使用默认属性值创建模拟吗?我不确定这个问题的真正含义。两种可能:
如果是一个对象
t=Movie.find(10)
,然后如果我说m=mock(t)
,m会自动继承t的所有属性值吗?有没有办法创建一个具有默认属性的模拟对象,这样我们每次使用它时都可以克隆它,而无需通过系列存根来获取
"initialize"
这些属性?
谢谢你的帮助。
可以使用默认属性值创建模拟吗?我不确定这个问题的真正含义。两种可能:
如果是一个对象t=Movie.find(10)
,然后如果我说m=mock(t)
,m会自动继承t的所有属性值吗?
有没有办法创建一个具有默认属性的模拟对象,这样我们每次使用它时都可以克隆它,而无需通过系列存根来获取"initialize"
这些属性?
谢谢你的帮助。
当涉及到 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))