2017-11-24 3 views
0

最初の2回はrspec仕様を実行し、失敗を受け取り、再度実行した後、それをパスします。なぜこれが起こっているのですか?それをどうやって修正しますか?一貫性のないレールテスト結果

これは、既に存在している名前のレコードを追加しないようにする一意性コードに関連しているようです。フルレポはここで見つけることができます

it { should validate_uniqueness_of(:name).case_insensitive.with_message(/has already been taken. Please use a different name./) } 

https://github.com/melissajstudent/koth

答えて

0

あなたは右がユニーク何が起こっているかの良い指標であると考えている下記の一貫初めて失敗したテストがあります。テストを最後に実行したときの残りのレコードがテストデータベースに存在し、同じファクトリを持つレコードを作成しようとしている可能性があります。

そのために、テストスイートの実行の間にデータベースをクリーンアップする方法がいくつかあります。テストスイートを実行する前に、bundle exec rake db:test:prepareを実行するだけで役立つことがあります。他のケースでは、データベースクリーナーの宝石を使用して、より堅牢なデータベースクリーニングを実行できます。https://github.com/DatabaseCleaner/database_cleaner

関連する問題