Name" } after(:create) do |user| create_list(:post, 10, user: user) end end end FactoryBot アンチパターン 19 独自 sequence id 同じ値のテスト 巨大デフォルトデータ 無駄 list 生成 Kaigi on Rails 2026 過去登壇勉強会
Name#{n}" } # Faker::Name.name でも OK trait :with_posts do transient do posts_count { 3 } end after(:create) do |user, evaluator| create_list(:post, evaluator.posts_count, user: user) end end end end FactoryBot アンチパターン 20 Kaigi on Rails 2026 過去登壇勉強会
trait :admin do role { :admin } end trait :deleted do deleted_at { Time.current } end trait :deleted_admin do role { :admin } deleted_at { Time.current } end end end # 呼び出し側 FactoryBot.create(:user, :deleted_admin) FactoryBot アンチパターン 22 Kaigi on Rails 2026 過去登壇勉強会
trait :admin do role { :admin } end trait :deleted do deleted_at { Time.current } end trait :deleted_admin do role { :admin } deleted_at { Time.current } end end end DRY でない traits • • :admin と重複 :deleted と重複 # 呼び出し側 FactoryBot.create(:user, :deleted_admin) FactoryBot アンチパターン 23 Kaigi on Rails 2026 過去登壇勉強会
trait :admin do role { :admin } end trait :deleted do deleted_at { Time.current } end end end # 呼び出し側 FactoryBot.create(:user, :admin, :deleted) FactoryBot アンチパターン 24 Kaigi on Rails 2026 過去登壇勉強会
Title #{n}" } user { create(:user) } trait :title_blank do title { '' } end trait :title_too_long do title { 'a' * 1000 } end end end FactoryBot アンチパターン 26 Kaigi on Rails 2026 過去登壇勉強会
Title #{n}" } user { create(:user) } trait :title_blank do title { '' } end Too Many Traits 例外値 trait trait :title_too_long do title { 'a' * 1000 } end end end FactoryBot アンチパターン Always Create Association Too Many Traits 例外値 trait 27 Kaigi on Rails 2026 過去登壇勉強会