In der neuesten Version von FactoryGirl wurden einige syntaktische Methoden wie Factory.create
zugunsten mehrerer anderer, insbesondere FactoryGirl.create
und der einfacheren create
, abgeschrieben.Unklar, wann eine bestimmte FactoryGirl-Syntax verwendet werden sollte
Die Erfahrung zeigt jedoch, dass bestimmte Syntaxen im Kontext nicht immer angemessen sind.
Nehmen Sie zum Beispiel:
FactoryGirl.define do
factory :article do
after_create {|a| a.comments << create(:comment) }
end
factory :comment do
end
end
Wo Artikel has_many Kommentare und Kommentare belongs_to Artikel. In den obigen Fabriken gibt a.comments << create(:comment)
den Fehler Comment(#nnn) expected, got FactoryGirl::Declaration::Static
aus. Ändern Sie diese Zeile in a.comments << FactoryGirl.create(:comment)
und der Fehler verschwindet.
Es ist nicht klar, wann eine Syntax Vorrang vor einem anderen Formular haben sollte.
Du bist ein friger Lebensretter-Typ. Ich werde nur die lange Syntax verwenden. Bessere zusätzliche Tastenanschläge als stundenlanges Debugging. –
Ich habe das vor einem Jahr gefragt und benutze seitdem die Long-Form. Ja, ich stimme zu, viel weniger Kopf kratzen. – IAmNaN