を統合テストを行うことが容易であるので、 。私はASP.NET MVCでTDDを今年以上にやっています。
私は標準的なルール、「ユニットテストのないコード行はありません」から始めました。そのため、コントローラーを含めてすべてをテストしました。コントローラはテストする必要がありますが、これはMVCフレームワークの目標の1つです。
アプローチが小規模なアプリケーションの場合、実際にうまく機能します。ほぼすべてのロジックがコントローラ内部に配置されています。すべてが非常にうまくテストされています。
しかし、私がMVCを続けていれば、私は心を変え始めました。コントローラーはできるだけスリムにしています。理想的には、何らかのビジネスオブジェクトへの呼び出しを委譲し、結果をラップするものとしては何もありません。残りはフィルターによるものです。
それは私にとってもうまく機能しました!私は現在実装されている/個別にテストされているビジネスオブジェクトを持っているので、コントローラはちょうど統合ポイントです。それが小さいから統合ポイントをテストする理由はありません。
統合テストについて:私はまだ実際に必要な状況にはまだ合っていません。そのコントローラーは、常にコンストラクターによって挿入する抽象化に依存していることを忘れないでください。これらの抽象がどのように機能するかという「良い」仮定がある限り、適切な単体テストを作成します。あなたが失敗したので、単体テストを修正するだけです。
統合テストは重要で便利ですが、できるだけそれらを作成しようとします。
サービスとは何を意味しますか? – user972959