60

これは約 20 の異なる投稿の重複であることは認識していますが、いずれも MVC4 に固有のものではなく、私のすべての質問に実際に答えているものはありません。これまでのところ、TDD の世界への私の最初の進出は、控えめに言っても苛立たしいものでした。私がやろうとしたことのほとんどは、MVC 4 と互換性がないように思われるか、文書化が不十分なサードパーティのライブラリを使用しないと不可能に近いようです。

私ができるようにしたいのは、コントローラーアクション、それらが渡すモデル、およびアクションがモデルを送信するビューをテストするテストを作成することです。ビューが存在するかどうかをテストしたい、渡されたモデルがビューに適したタイプであるかどうかをテストしたい、それが適切に処理されるかどうかをテストする方法が欲しい. また、ルートをテストできるようにしたいと考えています。そして、認証フィルターをテストしますか?

私は、ASP.Net MVC を単体テストする方法が必要です。可能性はほとんどありません。

アクションのモデル出力のテストは簡単に思えますが、ビューのテストはほぼ不可能です。

だからここに私の質問のリストがあります:

  1. アクションをテストしてアクションの結果を取得したら、必要なビューが存在するかどうかをテストするにはどうすればよいですか?
  2. ルートをテストするにはどうすればよいですか?
  3. ビューが適切に処理されていることを確認するにはどうすればよいですか?
  4. ASP.Net MVC 4 の完全な単体テストの実際の「ベスト プラクティス」とは何ですか?
  5. フォーム認証の単体テストを行うにはどうすればよいですか?
  6. アクション フィルターを単体テストするにはどうすればよいですか?

組み込みの Visual Studio テスト プロジェクトを使用したいのですが、NUnit を使用する必要がある場合は、使用する必要があります。それが適切に行われることを確認する必要があるだけです。

ご回答ありがとうございます。

編集:アセンブリの1つがコンパイルされた.NETのバージョンと互換性がないため、MVC4アプリでNUnitを動作させることもできませんでした。

4

1 に答える 1

59
  1. ビューが存在することを確認する
  2. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/
  3. http://blog.davidebbo.com/2011/06/unit-test-your-mvc-views-using-razor.html
  4. 下記参照
  5. FormsAuthentication を使用する ASP.NET MVC コントローラーを単体テストするにはどうすればよいですか?
  6. ASP.NET MVC でアクション フィルターをテストする方法は?

番号。4: これは難しい質問です。何かを徹底的にテストするにはどうすればよいでしょうか。個人的には、実際に使用せずに Web サイトとそのすべてのコンポーネントをテストするのは難しいため、3 つの主要なブラウザーと私の 2 つの目以外でビューを実際にテストすることはありません。JavaScript の起動、CSS のスタイル設定があり、ブラウザーごとに異なって見えます。したがって、私には、サイトの全体的な使いやすさの小さな部分であるビューを徹底的にテストしているように思えます. 財務データの単純な表ベースのレポートを開発している場合は、そのデータを徹底的にテストしてください。ビューが派手な Ajax サイトのベースである場合は、HTML をテストするのではなく、エクスペリエンスをテストする必要があります。これが簡単で切り詰められた答えではないことは承知していますが、許容範囲のカバレッジには常にトレードオフが伴います。

于 2012-03-29T00:10:18.400 に答える