FactoryGirl create_list с различни стойности

Опитвам се да използвам FactoryGirl, за да създам списък с артикули, но трябва артикулите да не са в ред. Това е, което имам, но бих искал да е по-СУХО.

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 )

но исках да създам елементи, така че тестваха реда им и те щяха да ги създадат всички по ред, тъй като имам последователност, настроена във фабриката.


person AGirlThatCodes    schedule 18.11.2014    source източник


Отговори (1)


Какво за това?

before do
  (1..3).to_a.shuffle.each do |order|
    FactoryGirl.create(:thing, ordering: order)
  end
end
person Bob    schedule 18.11.2014
comment
Това е класически случай на решаване на проблема, но не и отговор на въпроса. Очевидно това може да се направи, много прилича на оригиналния пример, но целта тук е потребителят create_list и да бъде по-опростен. Въпросът не беше Как мога да създам три модела с различни имена, а по-скоро мога ли да използвам create_list, за да създам три модела с различни имена, което за съжаление не е възможно. - person Peter R; 17.06.2017