私のASP.NETMVC3(新規)開発では、MvcContrib TestHelper(したがって、Rhino Mocks)に依存関係を作成したくありません。ただし、それが大きな価値を提供している場合を除きます。だから私はこのヘルパーの現在の状況を理解しようとしています。
ドキュメントには、TestHelperが次のコントローラー依存関係の偽物を生成すると記載されています。
- HttpContext
- HttpRequest
- HttpResponse
- HttpSession
- 形
- TempData
- クエリ文字列
- ApplicationPath
- PathInfo
MVC1とMVC2の場合、これがなぜそれほど役に立ったのかがわかります。しかし、MVC3は、TestHelperの適切性を低下させた可能性のある、改善されたテスト「シーム」の導入を開始しました。たとえば、MVC3Request
とResponse
コントローラーのプロパティは、HttpRequestとHttpResponseの分離可能/注入可能なバージョンになるように特別に設計されています。
私はまだMVC3での妥当性の進歩を調査しているので、MVC3で改善された分離(または注入可能性)を受けた上記の他の依存関係の数を知りたいです。また、TestHelperを使用して、上記の依存関係の有無にかかわらず、偽物(スタブ/モック)を使用してテストを作成するMVC3でどのように見えるかを示すコードのサンプルを見てみたいと思います。
TestHelperを使用した場合と使用しない場合のテスト作成の違いが十分に小さい場合は、TestHelperを使用しないことをお勧めします。つまり、好きな分離フレームワーク(MOQまたはNSubstitute)を自由に選択できます。
最終的に、MVC3リリースがHttpRequestとHttpResponseに対して特定の改善されたテスト容易性手順を実行したが、上記の他の依存関係の問題に対しては実行しなかったことを知って驚かれることでしょう。TestHelperを使用せずに、誰かが上記のアイテムをどのように分離するかについての内訳を教えてくれることを願っています。