Контроллер модульного теста, использующий переменные области приложения

Я создаю приложение ASP.NET MVC4. Я не использую какие-либо насмешливые рамки и, если возможно, предпочел бы не делать этого. У меня вопрос 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) Как в модульном тесте я могу добавить переменные уровня приложения, в которых нуждается контроллер?

Ответы на вопрос(2)

Ваш ответ на вопрос