以下是我在规格中使用的内容:
let(:family) { create :family }
let(:picnic) { build :picnic, cook: family.dad, assistant: family.son }
但是,我更愿意将这个逻辑移到picnic_factory.rb中,并在我的规范中使用let(:picnic){build:picnic}。
Picnic中有一个范围可以检查family.dad和family.son是否对同一个系列是唯一的。我需要创建一个家庭工厂,然后我需要用它来创建一个野餐工厂。
伪代码:
FactoryGirl.define do
FactoryGirl.create(:family) -> points towards family_factory.rb
factory :picnic do
cook { family.dad }
assistant { family.son }
end
end
答案 0 :(得分:0)
(警告:未经测试的代码):
或许定义这样的东西:
factory :family_picnic, parent: :picnic do
family = create(:family)
cook { family.dad }
assistant { family.son }
end
像这样使用:
FactoryBot.create(:family_picnic)