Есть ли способ в 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)