6
Tôi có hai đặc điểm trong nhà máy của mình và tôi muốn một trong số chúng được đưa vào khi tôi tạo đối tượng, không có nó mặc định cho một đối tượng (để chọn ngẫu nhiên đặc điểm đó). Dưới đây là những gì tôi đang thực hiện:Có thể sử dụng câu lệnh if trong nhà máy (FactoryGirl) không?
FactoryGirl.define do
factory :follow_up do
first_name { Faker::Name.first_name }
last_name { Faker::Name.last_name }
phone { Faker::PhoneNumber.cell_phone.gsub(/[^\d]/, '').gsub(/^1/, '2')[0..9] }
email { Faker::Internet.email }
email_preferred true
consent false
if [1, 2].sample == 1
by_referral
else
by_provider
end
trait :by_referral do
association :hospital
association :referral
source { FollowUp::REFERRAL}
end
trait :by_provider do
association :provider
source { FollowUp::PROVIDER }
end
end
end
Tuy nhiên, có vẻ như bỏ qua tuyên bố đó và đi thẳng đến đặc điểm by_provider. Bất cứ ai biết làm thế nào tôi sẽ làm điều này?
Điều này có vẻ như hành vi không mong muốn. Bộ thử nghiệm của bạn nên làm chính xác điều tương tự mỗi khi nó chạy, và không nên có bất kỳ sự ngẫu nhiên nào. Nếu bất cứ điều gì, bạn có thể muốn 2 bài kiểm tra riêng biệt ở đây, kiểm tra từng nhánh của logic. – GeekOnCoffee