0

可以使用默认属性值创建模拟吗?我不确定这个问题的真正含义。两种可能:

  1. 如果是一个对象t=Movie.find(10),然后如果我说m=mock(t),m会自动继承t的所有属性值吗?

  2. 有没有办法创建一个具有默认属性的模拟对象,这样我们每次使用它时都可以克隆它,而无需通过系列存根来获取"initialize"这些属性?

谢谢你的帮助。

4

1 回答 1

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))

于 2012-10-29T08:19:21.037 回答