可以唯一地初始化FactoryGirl中create_list方法创建的每个对象吗?

时间:2014-10-31 18:30:21

标签: ruby rspec tdd factory-bot

为了做到这一点,我想将一个哈希数组传递给create_list方法。我正在考虑看起来像这样的东西:

FactoryGirl.create_list(
  :person, 3, [
    {name: 'Rebekah', description: 'A woman with straight brown hair'}, 
    {name: 'Day', description: 'A man with curly brown hair'}, 
    {name: 'Ihsan', description: 'A boy with wavy blond hair'}
  ]
)

这将保留使用自定义名称和描述值初始化的三个对象。

有没有办法直接这样做,或者我只是循环遍历数组创建一个具有每组唯一值的单个实例?

1 个答案:

答案 0 :(得分:2)

你真的需要他们与众不同吗?如果你这样做,我会看到两个选择:

1-按顺序设置工厂属性。像这样:

FactoryGirl.define do
  factory :person do
    sequence(:name) { |n| "Person number #{n}" }
  end

2-创建列表并单独设置

list = FactoryGirl.create_list(:person, 3)
    list.each do |person|
    #setting up
end

还有其他答案,但我会选择第一个