私はthunderdomeの原理(1つのオブジェクトが入って、1つのオブジェクトが葉)の基本的なアイデアを知っていますが、私はasp.net mvcでそれの実例を見ませんでした。 それはサンダードーム原則thunderdome action invoker asp.net mvc
public ActionResult Index(Employee employee)
{
//some actions here
return View(employeeViewModel);
}
しかし、何
文のコントローラクラスは 直接のHttpContext
どのようにアクション呼び出しに関連したもの にさらされることはありませんが良い例です。のように見えるはずですか?あなたはそれのためのいくつかの例と単体テストを提供できますか? http://codebetter.com/blogs/jeremy.miller/archive/2008/10/23/our-opinions-on-the-asp-net-mvc-introducing-the-thunderdome-principle.aspx「サンダードーム原理」
から
- すべてのコントローラメソッド一個のビューモデルオブジェクト(またはいくつかの場合にはゼロオブジェクト)に取り、シングルビューモデルオブジェクトを返す(1つの目的は、入射し、一つの目的は、葉) 。コントローラのクラスは、HttpContextに関連するものに直接さらされることは決してありません。その新しいIHttpContextWrapperインターフェイスを模倣したり、スタブしたりするテストを書こうとしている人々のように私を泣かせてくれるものはありません。同様に、ControllerメソッドはViewResultオブジェクトを返さず、通常はすべてのMVCインフラストラクチャから分離されます。この戦略は、コントローラーのテストを機械的に簡単にする方法として非常に早い段階で採用されました。
しかし、私はこれを行う方法を知りたいですか?そのようなコントローラアクションの呼び出しを書く方法?通常はhttpcontextを擬似しなければならないから
はい、httpcontextを隠すのはどうですか?そのようなコントローラをテストすることについて? –
このようにすると、サービス内で何が起きているかテストを再開するよりも、この場合はリポジトリからのポテンシャルだけをテストすると仮定します。ハッキングされたアイデアをHttpContextに入れたいのであれば、http://haacked.com/archive/2007/12/09/writing-unit-tests-for-controller-actions.aspxを参照してください。 – diadiora