ASP.NETMVC4アプリを構築しています。私はモックフレームワークを使用していません。可能であれば、現時点では使用しないことをお勧めします。私の質問は2つの部分です。
Global.asaxで作成された変数を使用するコントローラーがあります。コントローラでは、このように変数にアクセスします。
HttpContext.Application["MyVar"]
1)これはアプリケーション全体の変数の使用法のベストプラクティスですか?そうでない場合、最善の方法は何ですか?
このコントローラーの単体テストを試みるために、次のコード(ここから)をテストメソッドに追加しました。
MyController target = new MyController();
var request = new HttpRequest("", "http://example.com/", "");
var response = new HttpResponse(System.IO.TextWriter.Null);
var httpContext = new HttpContextWrapper(new HttpContext(request, response));
target.ControllerContext = new ControllerContext(httpContext, new RouteData(), target);
target.ControllerContext.HttpContext.Application["MyVar"] = new MyVar();
問題は、アプリケーションに何も追加できないことです。コードの最後の行は何もしていないようで、コレクションは空のままです。VSのイミディエイトウィンドウでもこれを試しましたが、成功しませんでした。
2)単体テストで、コントローラーが必要とするアプリケーションレベルの変数を追加するにはどうすればよいですか?