Si je veux créer et utiliser une instance en utilisant "create" stratégie de construction et que je veux utiliser "attributes_for" stratégie de construction pour la vérification, est-ce possible? Et si j'utilise des séquences en usine? Est-ce possible dans la gemme machiniste?Existe-t-il un moyen dans factory_girl d'obtenir attributes_for et de créer pour le même élément d'instance?
5
A
Répondre
11
Je ne suis pas certain de comprendre parfaitement. Et je ne suis pas un utilisateur de machiniste. Mais on dirait que vous voulez juste faire quelque chose comme ça.
@attributes = FactoryGirl.attributes_for(:my_object)
my_object = MyObject.create(@attributes)
my_object.some_property.should == @attributes[:some_property]
1
Merci pour ce post, je voulais juste ajouter que la classe est factorygirl
@user_attributes = FactoryGirl.attributes_for(:super_user)
1
La solution John Hinnegan suggère est saine, mais il vaut mieux utiliser la méthode FactoryGirl.create
pour l'initialisation de l'objet, car il sera généralement vous donner un objet valide. Par exemple, un after(:create)
ne sera pas appelé si vous utilisez 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]