Hoe kan ik een FactoryGirl-fabriek maken voor een product dat hoort bij een gebruiker?

Ik heb de FactoryGirl-documentatie gelezen, maar ik kan er niet uitkomen. Ik weet dat het eenvoudig moet zijn.

Hier is mijn setup:

Rails 3.2.6
User has_many Products


FactoryGirl.define do
  factory :product do
    sequence(:identifier, 1000) {|n| "ABC#{n}" }
  end
end

Dit mislukt omdat er een user_id aan het product moet zijn gekoppeld. In mijn tests maak ik een gebruiker aan tijdens het inloggen. Dus mijn tests hebben toegang tot het gebruikersobject. Ik weet gewoon niet hoe ik het gebruikersobject met FactoryGirl in de productfabriek moet doorgeven.

0

1 antwoord

Ervan uitgaande dat u al een gebruikersfabriek (d.w.z. fabriek: gebruiker doet ) hebt, kunt u de volgende regel toevoegen aan uw fabriek in : product :

association :user

Dat maakt automatisch een gebruikersfabriek (zoals gedefinieerd) en wijst deze toe aan uw product.

Wanneer u het object in uw test maakt, kunt u echter nog steeds zoiets doen als:

FactoryGirl.create(:produce, user: some_user)

om een ​​andere gebruikersvariabele toe te wijzen, omdat de Factory de koppeling ziet van de regel die u zojuist hebt toegevoegd.

Ik hoop dat dit helpt.

1
toegevoegd