2017-06-12 14 views
1

私はRuby on Railsでいくつかのテストを実行しようとしていますが、テスト時にログに記録する方法はわかりません。私は試しました:RoR:テスト前にログに記録する

setup do 
    sign_in FactoryGirl.create(:admin) 
    end 

各テストの前に実行されているので、私はエラー(重複)が発生します。

重複キー値が

https://github.com/plataformatec/devise#integration-tests

"index_users_on_email" ユニーク制約に違反どのように私はすべてのテストに一度だけログインするために行うことができますか?

答えて

1

これをコメントとして持ちましたが、フォーマットできなかったのでここに入れてください。

なぜ、すべてのテストで一度だけログインするのですか? 理論的には、単体テストのポイントは、各ユニットをあたかも単一の相互作用のように動かすことです。あなたがスイート全体の前に、単一の時間に何かを呼び出すしたい場合

、あなたはそれが仕様ヘルパーに入れることができます:

config.before(:suite) do 
    # Do Something Once 
end 

あなたは、機能仕様を話していますか?モデル?コントローラ?

しかし、あなたが投稿したものを見ると、おそらく機能仕様について話しているように見えます。その場合、私はそうしないと言います。ユーザーが各仕様についてログインさせる。

サイドノート エラーが発生したことに気がつくと、各スペックを実行する前にDBをきれいにする必要があります。これについてはDatabase Cleaner Gemをチェックしてください。これにより、各スペックについてそのユーザーを再作成させることができます。

+0

あなたの答えをありがとう、私はすぐに確認します – Xero

関連する問題