基本
spec/factories/user.rb
FactoryGirl.define do
factory :user, class: 'User' do
sequence(:name) { |n| "user#{n}" }
sequence(:account) { |n| "account#{n}" }
sequence(:email) { |n| "user#{n}@email.com" }
password 'password'
password_confirmation 'password'
trait :not_activated do
activated false
end
trait :activated do
activated true
end
end
end
この用にUserを定義するとcreate(:user, :activated)
のようにすることで、使うことができる。
traitを指定して新しく名前を定義する
ただ、traitが複雑になると、初期化部分が長くなるので、以下のように命名しておくと便利である。上のファイルの一番最後のTrait定義の後に書けばよい。今回は、traitが二個しかないので、あまり意味がないが、複数出てきたときに使える。
factory :activated_user, traits: [:activated]
factory :deleted_user, traits: [:deleted]
これで、create(:activated_user)
として使うことができる。