2014-11-18 32 views
5

Tôi đang cố gắng sử dụng FactoryGirl để tạo danh sách các mục, nhưng tôi cần các mục không theo thứ tự. Đây là những gì tôi có, nhưng tôi muốn nó được DRYer.FactoryGirl create_list với các giá trị khác nhau

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 

Tôi biết rằng bạn có thể tạo nhiều mục có:

FactoryGirl.create_list(:thing, ordering: 3) 

nhưng tôi muốn tạo ra sản phẩm để nó kiểm tra thứ tự của chúng, và họ sẽ tạo ra tất cả của chúng theo thứ tự kể từ khi tôi đã thiết lập trình tự trong nhà máy.

Trả lời

1

Điều này thì sao?

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

Đây là trường hợp điển hình để giải quyết vấn đề, nhưng không trả lời câu hỏi. Rõ ràng điều đó có thể được thực hiện, nó giống như ví dụ ban đầu, nhưng mục tiêu ở đây là người dùng 'create_list' và để giữ cho nó đơn giản hơn. Câu hỏi không phải là "Làm thế nào tôi có thể tạo ra ba mô hình với các tên khác nhau", nhưng thay vì "Tôi có thể sử dụng create_list để tạo ra ba mô hình với các tên khác nhau", không may là không thể. –

Các vấn đề liên quan