6

Rails アプリの詳細な rspec カピバラ統合と単体テストの作成を完了しました。これには、Omniauth (twitter) ログインのモック、フォームへの入力、データ検証などが含まれます。機能テスト。

あなたの意見や、さらなる読み物へのリンクなどをいただければ幸いです。

4

2 に答える 2

12

私はおそらくこの意見で少数派であることを知っているので、私はここで悪魔の擁護者を演じます.私は実際には非常に徹底的なコントローラーテストを行うことを好みます. いくつかの理由:

1) 統​​合テスト レベルよりも、コントローラー レベルですべてのパスと結果を体系的にテストする方が簡単だと思います。私の統合テストは、主にハッピー パスと、より一般的なエラー パスのいくつかです。

2) コントローラ レベルで多くの潜在的なセキュリティ問題が発生します。徹底的なテストにより、悪意のあるものがモデル ロジックに侵入できないようにすることができます。

3) これは主観的なものですが、アプリケーションが通過する可能性のあるロングテール パスのいくつかについて考える必要があります。誰かが無効なパスワード リセット トークンを URL に挿入しようとした場合はどうなりますか? コントローラーのテストにより、すべてのオプションを確実に検討できます。

4) 統合テストとは異なり、テストはかなり簡単です。各アクションは単なる Ruby メソッドです。

于 2013-05-04T23:50:03.657 に答える
6

個人的には、あなたの要求 (統合) 仕様がカバーされているすべてのコード パスを実行していると思います。Ryan Bates は、彼がここでテストする方法について素晴らしい Railscast を持っています。あなたと同じように、コントローラーの仕様よりも統合テストを書くのが好きです。ほとんどの場合、コントローラーは単純に CRUD タイプの操作を前面に出すだけなので (特に、ドメイン ロジックをコントローラーから除外することに注意している場合)、テストするのは足場だけです。

于 2013-02-05T21:34:48.687 に答える