如何定义一个在我的 FactoryGirl 工厂中使用的常规方法?例如:
FactoryGirl.define do
def silly_horse_name
verbs = %w[brunches dribbles haggles meddles]
nouns = %w[landmines hamlets vandals piglets]
"#{verbs.sample} with #{nouns.sample}".titleize
end
factory :racehorse do
name { silly_horse_name } # eg, "Brunches with Landmines"
after_build do |horse, evaluator|
puts "oh boy, I built #{silly_horse_name}!"
end
end
end
这样做根本不会调用silly_horse_name
;如果将其重新定义为raise 'hey!'
,则不会发生任何事情。
我正在使用 FactoryGirl 2.5.2。