我正在尝试使用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 )
但我想创建项目以便测试他们的订单,他们会按顺序创建所有项目,因为我已经在工厂设置了序列。
答案 0 :(得分:1)
这个怎么样?
before do
(1..3).to_a.shuffle.each do |order|
FactoryGirl.create(:thing, ordering: order)
end
end