如何从另一个工厂内获取属性?

时间:2018-02-08 21:47:54

标签: ruby-on-rails factory-bot

以下是我在规格中使用的内容:

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 

1 个答案:

答案 0 :(得分:0)

  • 假设您已经 已定义 野餐工厂和家庭工厂。

(警告:未经测试的代码):

或许定义这样的东西:

factory :family_picnic, parent: :picnic do
    family = create(:family)
    cook { family.dad }
    assistant { family.son }  
end

像这样使用:

    FactoryBot.create(:family_picnic)