トレイトを使う
factory_botでインスタンスを構築するとき、トレイトにはSymbolのリストも渡せます。
factory :user do
name { "Friendly User" }
trait :active do
name { "John Doe" }
status { :active }
end
trait :admin do
admin { true }
end
end
# :active状態で名前が「Jon Snow」の管理者の利用者を作ります。
create(:user, :admin, :active, name: "Jon Snow")
この機能はbuild
、build_stubbed
、attributes_for
、create
で動きます。
create_list
メソッドとbuild_list
メソッドも対応しています。
2つ目の仮引数に作成・構築するインスタンス数を渡すことをご留意ください。
このファイルの「複数レコードの構築と作成」でドキュメントに書かれている通りです。
factory :user do
name { "Friendly User" }
trait :active do
name { "John Doe" }
status { :active }
end
trait :admin do
admin { true }
end
end
# 3人の管理利用者を作ります。:active状態があり、名前は「Jon Snow」です
create_list(:user, 3, :admin, :active, name: "Jon Snow")