Uncategorized

Railsでテストを作っていたら,”Minitest::UnexpectedError: ActiveRecord::RecordNotUnique: RuntimeError: UNIQUE constraint failed”が出てハマった

fjordbootcampのプラクティスでRailsのテストを作る課題をやっていたら、Minitest::UnexpectedError: ActiveRecord::RecordNotUnique: RuntimeError: UNIQUE constraint failed: relationships.follower_id, relationships.following_idというエラーにハマりました。
昨日までは問題なくテスト通っていたんですけどね。。

ちなみに解決策はtest/fixturesを確認して、重複を修正するだけでOKでした!

エラーコード

一応エラーコードを載せておきます。
ただ、早く解決策を知りたい場合は読み飛ばしてもらっても大丈夫です。

原因は??

色々と調べていると、fixturesが関連してる?
Rails Tutorial: SQLite3::ConstraintException: UNIQUE constraint failed: users.email

follower_idとfollowing_idがユニークになってない!というエラ〜メッセージだったので、フォロー・フォロワー関連を扱っているtest/fixtures/relationships.ymlを確認します。

oneとtwoのfollowing_idfollower_idが被っていますね💦
昨日まではこのエラーが出ていなかったので、DBをいじっているときに変更されてしまったのかもしれません。

ということで下記のように書き直しました。

これで重複はなくなりました!
ではテストを実行します。

問題なくパスできました!