在最新版本的 FactoryGirl 中,一些语法方法Factory.create
被贬低,取而代之的是其他几种方法,最值得注意FactoryGirl.create
的是更简单的create
.
然而,经验表明,某些语法并不总是适合上下文。
举个例子:
FactoryGirl.define do
factory :article do
after_create {|a| a.comments << create(:comment) }
end
factory :comment do
end
end
其中文章有_许多评论,评论属于_文章。在上述工厂中,a.comments << create(:comment)
发出错误Comment(#nnn) expected, got FactoryGirl::Declaration::Static
。将该行更改为a.comments << FactoryGirl.create(:comment)
,错误消失。
目前尚不清楚一种语法何时应优先于任何其他形式。