6
私は自分の工場で2つの特性を持っています。オブジェクトを作成するときに、それらのうちの1つをデフォルトにすることなく(その特性をランダムに選択して)組み込むことができます。ここで私がやっているものです:工場(FactoryGirl)でifステートメントを使用することはできますか?
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
しかし、それは声明とはby_provider形質にまっすぐ行けばということを無視しているようです。誰でも私はこれをやる方法を知っていますか?
これは望ましくない動作のようです。テストスイートは、実行するたびに全く同じことを行う必要があります。また、ランダム性を持たないようにしてください。何かがあれば、ここで2つの別々のテストを行い、ロジックの各ブランチをテストすることをお勧めします。 – GeekOnCoffee