如何从一个工厂获取另一个工厂内的属性?
How can I get attributes from one factory inside of another?
这是我在规格中使用的内容:
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 是否对同一个 Family 是唯一的。我需要创建一个家庭工厂,然后我需要用它来创建一个野餐工厂。
伪代码:
FactoryGirl.define do
FactoryGirl.create(:family) -> points towards family_factory.rb
factory :picnic do
cook { family.dad }
assistant { family.son }
end
end
- 假设您已经定义了一个野餐工厂和一个家庭工厂。
(警告:未经测试的代码):
也许定义如下:
factory :family_picnic, parent: :picnic do
family = create(:family)
cook { family.dad }
assistant { family.son }
end
这样使用:
FactoryBot.create(:family_picnic)
这是我在规格中使用的内容:
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 是否对同一个 Family 是唯一的。我需要创建一个家庭工厂,然后我需要用它来创建一个野餐工厂。
伪代码:
FactoryGirl.define do
FactoryGirl.create(:family) -> points towards family_factory.rb
factory :picnic do
cook { family.dad }
assistant { family.son }
end
end
- 假设您已经定义了一个野餐工厂和一个家庭工厂。
(警告:未经测试的代码):
也许定义如下:
factory :family_picnic, parent: :picnic do
family = create(:family)
cook { family.dad }
assistant { family.son }
end
这样使用:
FactoryBot.create(:family_picnic)