Is it possible to define a default trait in FactoryGirl? If I define a factory like this (where both question_response belongs_to question):
factory :question_response do
question
work_history
trait :open do
question { FactoryGirl.create :question, question_type: 'open' }
end
end
When I do FactoryGirl.create :question_response, :open
it will first create a default question and then create another inside the trait, which is an unnecessary operation.
Ideally I'd like to do this:
factory :question_response do
work_history
trait :default do
question { FactoryGirl.create :question, question_type: 'yes_no' }
end
trait :open do
question { FactoryGirl.create :question, question_type: 'open' }
end
end
And then doing FactoryGirl.create :question
will use the default trait, but it doesn't seem to be possible.
It's not true. if you specify the trait with
question
, it will overwrite the factory behavior before creation so that it does not create a default question.I checked it with FactoryGirl v4.5.0