Моки могут быть созданы со значениями атрибутов по умолчанию
Можно ли создавать макеты со значениями атрибутов по умолчанию? Я не уверен, что на самом деле означает этот вопрос. Две возможности:
если объект
t=Movie.find(10)
и тогда, если я скажуm=mock(t)
, m автоматически наследует все значения атрибута t?Есть ли способ создать фиктивный объект с атрибутами по умолчанию, так что мы можем клонировать его каждый раз, когда мы используем его, не проходя через заглушки серии
"initialize"
эти атрибуты?
Спасибо за вашу помощь.
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- рельсы / об / 2-11 / документы / издевается / окурок-модель
Очень полезные помощники для насмешек AR/Mongoid и других моделей в спецификациях.
Вместе с factory_girl
Вы можете установить атрибуты на эти макеты, например, movie = mock_model(Movie, FactoryGirl.attributes_for(:move))