与Factory Girl有许多联系

时间:2016-01-27 19:39:34

标签: ruby-on-rails factory-bot

factory :account do
end

factory :user do 
  account
end

factory :user2 do 
  account
end


factory :location do
  // how to add to the users has_many collection?
end

我的位置模型有一个has_many :users关联,如何在我的工厂中将user和user2添加到该集合?

同样在构建对象图时,factory_girl是否应仅用于创建帐户,用户但实际上并不构建两者之间的关系?我应该在我的测试中自己做这件事还是某种帮手? 因为我想创建account1和account2,并且每个帐户都有一个位置。我必须在我的测试中自己构建这个对象图,然后呢?

2 个答案:

答案 0 :(得分:3)

您必须使用after回调:

factory :location do
  after(:create) do |location, evaluator|
    create(:user, location: location)
    create(:user2, location: location)
  end
end

请参阅documentation

答案 1 :(得分:1)

您可以一次创建2个用户:

factory :location do
  after(:create) do |location|
    create_list(:user, 2, location: location)
  end
end