W najnowszym wydaniu FactoryGirl niektóre metody składniowe, takie jak Factory.create
, zostały amortyzowane na rzecz kilku innych, w szczególności FactoryGirl.create
i prostszego create
.Niejasne, kiedy użyć konkretnej składni FactoryGirl
Jednak doświadczenie pokazuje, że niektóre składnie nie zawsze są odpowiednie, biorąc pod uwagę kontekst.
Weźmy na przykład:
FactoryGirl.define do
factory :article do
after_create {|a| a.comments << create(:comment) }
end
factory :comment do
end
end
Gdzie Komentarze Artykuł has_many i Komentarze belongs_to art. W powyższych fabrykach, a.comments << create(:comment)
wydaje błąd Comment(#nnn) expected, got FactoryGirl::Declaration::Static
. Zmień tę linię na a.comments << FactoryGirl.create(:comment)
, a błąd zniknie.
Nie jest jasne, kiedy jedna składnia ma pierwszeństwo przed jakąkolwiek inną formą.
Jesteś kolesiem z dreszczykiem życia. Po prostu użyję długiej składni. Lepsze dodatkowe naciśnięcia klawiszy niż godziny bezbłędnego debugowania. –
Zapytałem o to rok temu i od tego czasu używamy długiej formy. Tak, zgadzam się, o wiele mniej drapania głowy. – IAmNaN