FactoryGirl create_list具有不同的值

时间:2014-11-18 21:43:45

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

我正在尝试使用FactoryGirl来创建项目列表,但我需要这些项目不按顺序排列。这就是我所拥有的,但我希望它是DRYer。

spec.rb

context "three out of order" do
  before do
    FactoryGirl.create(:thing, ordering: 3)
    FactoryGirl.create(:thing, ordering: 1)
    FactoryGirl.create(:thing, ordering: 2)
  end

   it "should sort the things in order" do
    expect(Thing.all.map(&:ordering)).to eq([1, 2, 3])
   end
end

我知道你可以创建多个项目:

   FactoryGirl.create_list(:thing, ordering: 3 )

但我想创建项目以便测试他们的订单,他们会按顺序创建所有项目,因为我已经在工厂设置了序列。

1 个答案:

答案 0 :(得分:1)

这个怎么样?

before do
  (1..3).to_a.shuffle.each do |order|
    FactoryGirl.create(:thing, ordering: order)
  end
end