如何使用factory_girl创建同一类但具有不同数据的两个对象?

时间:2014-06-10 15:52:03

标签: ruby-on-rails ruby factory-bot

我想使用factory_girl创建2条记录。 一个是水果和第二个蔬菜。我怎样才能做到这一点? 我知道我可以这样做:

FactoryGirl.define do
  factory :category do
    title ''
  end
end

我还应该运行create还是要保存的数据? 我试过两种方法。两者都出错了。

第一

FactoryGirl.define do
  factory :category do
    title 'fruits'
    title 'vegetables'
  end
end

第二

FactoryGirl.define do
  factory :category do
    title 'fruits'
  end
  factory :category do
    title 'vegetables'
  end
end

1 个答案:

答案 0 :(得分:1)

factory_girl允许您覆盖工厂定义中的数据(或缺少数据)。您可以像这样定义工厂

FactoryGirl.define do
  factory :category
end

并在规范中使用它:

create :category, title: 'fruits'
create :category, title: 'vegetables'

或者,您可以定义两个不同的工厂:

FactoryGirl.define do
  factory :fruits_category do
    title 'fruits'
  end
  factory :vegetables_category do
    title 'vegetables'
  end
end

并像

一样使用它们
create :fruits_category
create :vegetables_category

仅将数据放在用户期望的工厂名称的工厂中,以便测试易于理解。