factory girlのtraitで関連するモデルを作成するのを選択制にする

関連するモデルを作成する場合は、associationを使います。

ただ、必ずしも毎回そのモデルが必要になるのか?と言われると疑問が浮かびます。

なので、選択制にする方が自由度が高いと考えています。

taritは選択制にできるので、使い方を書きます。

trait

factoryの部分はこう書きます。

  factory :foo do
    title 'foo'
    body 'bar'
    user_id 1

    trait :with_user do
      association :user, factory: :user
    end

呼び出す側は、こう書きます。

create(:foo) { :foo, :with_user }

これで選択制にすることができます。

以上です。