Unterschied zwischen HttpContext und HttpContextWrapper in Bezug auf Unit-Tests und in Bezug auf Web Forms und MVC

Kenne ich den Unterschied zwischen HttpContext und HttpContextWrapper ist unten...

HttpContext

Dies ist die vintage asp.net Kontext. Das problem mit diesem ist, dass es keine Basisklasse und nicht die virtuellen, und ist daher unbrauchbar für die Prüfung (nicht Modell es). Es wird empfohlen, nicht geben Sie es herum, als Funktion Argumente, anstatt vorbei um Variablen des Typs HttpContextBase.

HttpContextBase

Dies ist das (c# 3.5) Ersatz zu HttpContext. Seitdem es ist Abstrakt, es ist jetzt mockable. Die Idee ist, dass Sie Ihre Funktionen, die erwarten, übergeben werden, einen Rahmen zu erwarten hat, erhalten eine von diesen. Es wird konkret umgesetzt, indem HttpContextWrapper

HttpContextWrapper

Ebenfalls neu in C# 3.5 - dies ist die konkrete Umsetzung von HttpContextBase. Zu erstellen, diese in eine normale Webseite zu, verwenden Sie neue HttpContextWrapper(HttpContext.Strom).

Die Idee ist, dass, um Ihren code unit-testbar, deklarieren Sie alle Variablen und Parameter der Funktion vom Typ HttpContextBase, und verwenden Sie ein IOC-framework z.B. Schloss Windsor, um es zu bekommen injiziert. Im normalen code, Burg ist zu injizieren das äquivalent von " neuen HttpContextWrapper
(HttpContext.Strom)', in der Erwägung, dass in der test-code, den Sie sind, gegeben werden ein mock HttpContextBase.

Aber ich bin mir nicht bewusst über die wahre Verwendung. Ich habe gehört, dass es nützlich, in Unit-Tests im Vergleich mit Web-Formularen. aber wie ist es nützlich ?


Ich weiß auch, dass wir es verwenden können, um führen Sie die controller-und Action-wie hier erwähnt

InformationsquelleAutor | 2013-05-27
Schreibe einen Kommentar