スポンサーリンク

【Rails】Validation failed: Email has already been taken【FactoryBot, Faker】

プログラミング
スポンサーリンク

「Validation failed: Email has already been takenというエラーが出る」

概要と原因
・テストにおいて、userを複数名作成しようとした際に、emailが重複していたために起きたエラー。
・複数のemailをFakerを使って作成するために、sequence(:email) {Faker::Internet.email}を追記したものの、元々のemailを削除していなかったために、それが呼び出され、エラー原因となっていた。

spec/factories/users.rb

FactoryBot.define do
  factory :user do
    nickname              {"aaa"}
    email                     {"aaaaa@aaaaa"}    ←不要
    password              {"00000000"}
    password_confirmation {"00000000"}
    sequence(:email) {Faker::Internet.email}
  end
end

コメント