FactoryGirl将工厂传递给特质

时间:2016-01-08 17:15:38

标签: factory-bot

是否可以将工厂转移到特质中?

鉴于以下特征

FactoryGirl.define do
  factory :foo do
    trait :with_user do

    end
  end
end

我想做(伪代码)

之类的事情
FactoryGirl.create(:foo, :with_user(user))

1 个答案:

答案 0 :(得分:0)

我刚才想到这一点,所以我认为我应该发布解决方案以防万一有人遇到这个问题。

我使用瞬态和后创建钩子来获得所需的结果。

create :foo, :with_user, user: create(:user)

FactoryGirl.define do
  factory :foo do
    trait :with_user do
      transient do
        user nil
      end
      after :create do |foo, evaluator|
        user = evaluator.user || create :user
      end
    end
  end
end