6
Ich habe zwei Züge in meiner Fabrik bekam, und ich möchte einer von ihnen aufgenommen werden, wenn ich das Objekt zu erstellen, ohne es (so wählen zufällig die Eigenschaft) zu einem Verzug. Hier ist, was ich tue:Kann eine if-Anweisung in einer Factory (FactoryGirl) verwendet werden?
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
Es ist jedoch zu ignorieren scheint zu sein, dass, wenn Aussage und gerade zu by_provider Zug gehen. Weiß jemand, wie ich das machen würde?
Dies scheint wie unerwünschtes Verhalten. Ihre Testsuite sollte jedes Mal genau dasselbe tun und sollte keine Zufälligkeit haben. Wenn überhaupt, möchten Sie wahrscheinlich 2 separate Tests, die jeden Zweig der Logik testen. – GeekOnCoffee