在FactoryGirl的最新版本中,一些句法方法(如Factory.create
)被折舊以支持其他幾種語法,最顯着的是FactoryGirl.create
和更簡單的create
。不明確何時使用特定的FactoryGirl語法
但是,經驗表明,考慮到上下文,某些語法並不總是合適的。
舉個例子:
FactoryGirl.define do
factory :article do
after_create {|a| a.comments << create(:comment) }
end
factory :comment do
end
end
其中物件的has_many評論和belongs_to的文章評論。在上述工廠中,a.comments << create(:comment)
發佈了錯誤Comment(#nnn) expected, got FactoryGirl::Declaration::Static
。將該行更改爲a.comments << FactoryGirl.create(:comment)
,錯誤消失。
當一種語法優先於任何其他形式時,並不清楚。
你是一個冷靜的救星花花公子。我只是要使用長語法。比幾小時的無知調試更好一些額外的按鍵。 – 2013-04-04 01:15:17
我在一年前問過這個問題,從那以後一直使用這個長形。是的,我同意,方式少抓撓。 – IAmNaN 2013-04-05 01:53:31