Reputation: 585
I'm trying to user FactoryGirl to create a list of items, but I need the items to not be in order. This is what I have, but I would like it to be 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
I know that you can create multiple items with:
FactoryGirl.create_list(:thing, ordering: 3 )
but I wanted to create items so it tested their order, and they would create all of them in order since I have sequence set up in the factory.
Upvotes: 6
Views: 2762
Reputation: 2121
What about this?
before do
(1..3).to_a.shuffle.each do |order|
FactoryGirl.create(:thing, ordering: order)
end
end
Upvotes: 1