0

フローのテストに関連するRails統合テストが見つかりました。コントローラーテスト(レール5で非推奨)を統合テストに置き換える業界標準についていくつか質問があります。統合テストのためのレールコントローラのテストを置き換えることは常にdbにとどまるべきですか?

通常、パラメータを取得する小さなコントローラがあり、適切なコラボレータを呼び出してレスポンスを準備します。コントローラオブジェクトでコラボレータを直接模擬してテストするのは簡単です。

すべてのコントローラーテストを統合テストに移行して、dbを永続させるオーバーヘッドが懸念されます。この場合の基準は何ですか?

完全なフローではなく、1つのルート/アクションをテストするときの標準とは何ですか?

どのように我々はこれを置き換えることができますが

@controller.stubs(:authenticate).returns(true) 

答えて

0

統合テストは実ユーザを模倣することを意図している?:します。アプリケーション全体をテストすることを意図しています。

このことは意見が異なります。私には、完全にスタブ/モックを避けるべきであることを意味します。一つのものがスタブされたり嘲笑されたりすることはありません。つまり、私が書くすべての統合テストは、ユーザー名とパスワードを入力する実際の認証プロセスを経るということです。いくつかの手順は重複しています。

インテグレーションテストは、ユニット/コントローラテストよりもすべて遅いです。認証手順を省略することは、長期的に効果を発揮するのに十分な時間を節約するものではありません。

+0

回答ありがとうございます。すべてのことに同意する。ユーザの認証と格納は違いはありませんが、コントローラテストを統合テストに移行するときに(Rails 5で提案されているように)、すべてのモデルをdbに格納するのはオーバーヘッドです。あなたはすべてのコントローラアクションのためにDBにすべてを格納するレール統合テストを行いますか? – Jorge

+0

@Jorge私は現在のテストに必要なものだけを作成するために治具/工場を使用します。 –

関連する問題