混乱しました。コントローラフォルダで何をテストする必要がありますか?成功コードを返すためのコントローラーアクション?統合テストで1つのコマンドで実行できるのはなぜですか?そして、ビューテストはどうですか?ビューにいくつかのhtmlタグがあるかどうかをテストするには?統合テストでもできます。
モデルは検証ルールをテストする必要がありますか?助けてくれてありがとう。
混乱しました。コントローラフォルダで何をテストする必要がありますか?成功コードを返すためのコントローラーアクション?統合テストで1つのコマンドで実行できるのはなぜですか?そして、ビューテストはどうですか?ビューにいくつかのhtmlタグがあるかどうかをテストするには?統合テストでもできます。
モデルは検証ルールをテストする必要がありますか?助けてくれてありがとう。
ユニット(モデル)と統合仕様のみに自信があり、アプリに十分なカバレッジを提供する場合は、他のものを無視することができます。これらの2つだけを実行している場合は、平均的な開発者よりも多くのことを実行していると言えます。そして、ほとんどの開発者もそれらを使用しています。
ただし、巨大なアプリがある場合に役立つコントローラーテストについて考える必要があります。つまり、統合テストでは、http応答をテストしたり、h1 HTMLタグ内にテキストが含まれている場合はテストしないでください。ビューを変更する場合は、ビューテストを変更するだけでなく、統合テストを変更する必要があるためです。
テストにはさまざまな種類があるため、機能を複数の部分に分割して、何が問題になっているのかを確認できます。モデルにありますか?コントローラ?
しかし、自分にとって有用だと思わないテストを書くように強制しないでください。
コントローラ仕様で実装するのが簡単なテストがあります。
例:
シナリオ:一連のビューへの許可されたアクセスをテストしたい(許可されていないユーザーがログインページにリダイレクトされると仮定します)。
統合テストのアプローチ:これは、実行が遅くなる傾向がある統合テストを使用して、ビューのテストで実行できます(ログインページにアクセスし、資格情報フィールドに入力してEnterキーを押し、ページにアクセスしてテストします...)
コントローラーテストアプローチ:コントローラーの各メソッドをテストし、応答コードを確認できます。応答はリダイレクトでしたか?(コード200)。さらに、コントローラーのメソッドはRailsアプリのエントリーポイントであるため、追加のビューがコントローラーの仕様でカバーされていることを確信できます。
私はこのガイドラインを使用しますhttps://github.com/bbatsov/rails-style-guide#rspec
多くの統合テストを行うことができますが、それは本当に遅くなります。私は多くのコントローラー、モデル、ビューの仕様を作成し、次にいくつかの統合仕様を作成するのが好きです。