Unit-Test-Controller, der anwendungsspezifische Variablen verwendet

Ich erstelle eine ASP.NET MVC4-App. Ich benutze kein spöttisches Framework und würde es, wenn möglich, vorziehen, dies an dieser Stelle nicht zu tun. Meine Frage besteht aus 2 Teilen.

Ich habe einen Controller, der eine in Global.asax erstellte Variable verwendet. So greife ich im Controller auf die Variable zu.

HttpContext.Application["MyVar"]

1) Ist dies eine bewährte Methode für die anwendungsweite variable Verwendung? Wenn nicht, wie geht das am besten?

Bei dem Versuch, diesen Controller zu testen, habe ich den folgenden Code hinzugefügt (vonHier) zu meiner Testmethode.

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();

Das Problem ist, dass ich der Anwendung nichts hinzufügen kann. Die letzte Codezeile scheint nichts zu bewirken und die Sammlung bleibt leer. Ich habe dies auch in VS 'Sofortfenster ohne Erfolg versucht.

2) Wie kann ich im Komponententest die Variablen auf Anwendungsebene hinzufügen, die der Controller benötigt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage