factorybotで重複しないようにsequenceを用いてデータを自動で作成する(rails+rspec)

1 min 553 views
muraoka

muraoka

pixiv、nanaでプロダクトマネージャーを経験。
現在はマーケティングやwebサービス開発のコンサルティングを行っています。

FOLLOW

factorybotでデータを作成する際に同じモデルで複数作成したいけど名前やidなどを重複させたくない場合に便利なのがsequenceになります。

sequence(:company_name) { |n| "company_#{n}" }

これでnが1+でどんどん1ずつ足されていき、重複しなくなります。factorybotの定義全体でいくと下記

spec/factories/companies.rb

FactoryBot.define do
  factory :company do
    sequence(:company_name) { |n| "company_#{n}" }   # 会社名
  end
end

上記でcompany_1,company_2とデータ生成される。

muraoka

muraoka

pixiv、nanaでプロダクトマネージャーを経験。
現在はマーケティングやwebサービス開発のコンサルティングを行っています。

FOLLOW

関連記事