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

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

3 ответа

Решение

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

@attributes = FactoryGirl.attributes_for(:my_object)
my_object = MyObject.create(@attributes)
my_object.some_property.should == @attributes[:some_property]

Решение, предложенное Джоном Хиннеганом, является разумным, но лучше использовать 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]

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

@user_attributes = FactoryGirl.attributes_for(:super_user)
Другие вопросы по тегам