Есть ли способ в factory_girl, чтобы получить attribute_for и создать для того же элемента экземпляра? - PullRequest
5 голосов
/ 30 ноября 2010

Если я хочу создать и создать экземпляр, используя стратегию сборки create, а затем использовать для проверки стратегию сборки attribute_for, это возможно сделать?А если я использую последовательности на заводе?Возможно ли это в жемчужине машиниста?

Ответы [ 3 ]

11 голосов
/ 06 марта 2011

Не совсем уверен, что полностью понимаю.И я не пользователь машиниста.Но, похоже, вы просто хотите сделать что-то вроде этого.

@attributes = FactoryGirl.attributes_for(:my_object)
my_object = MyObject.create(@attributes)
my_object.some_property.should == @attributes[:some_property]
1 голос
/ 07 февраля 2015

Решение Джон Хиннеган предполагает, что это разумно, но вам лучше использовать метод FactoryGirl.create для инициализации объекта, поскольку он обычно дает вам действительный объект. Например, after(:create) не будет вызываться, если вы используете MyObject.new.

@attributes = FactoryGirl.attributes_for(:my_object)
my_object = FactoryGirl.create(:my_object, @attributes)
expect(my_object.some_property).to eq @attributes[:some_property]
1 голос
/ 13 марта 2013

Спасибо за этот пост, просто хотел добавить, что класс FactoryGirl

@user_attributes = FactoryGirl.attributes_for(:super_user)
...