Ich muss HttpContext.Current.Application
table vortäuschen, um von meinen Komponententests darauf zugreifen zu können.
Ich muss meine Daten irgendwo speichern. Ich dachte, dass ich nur Instanz von NameValueCollectionBase
übergeben kann, aber als ich entdeckte, dass dieser Basistyp keinen Indexer hat, scheint es zu kompliziert zu verwenden.
Wie wäre es also, diesen Teil von HttpContext
zu fälschen? Ist es möglich? Wie kann ich es schaffen? Wird NUnit.Mocks
hilfreich sein?
Vielen Dank im Voraus ...
Bitte gehen Sie durch die folgenden Links, es wird Ihnen helfen.
Mocking und HttpContextBase.get_User ()
Danke Venkat
In diesem Szenario erzeuge ich einige Stubs, die von den Basisklassen in System.Web.Abstractions abgeleitet sind. Ich verwende diese Technik oft für MVC-Anwendungen, da MVC / WebApi-Controller eine Abstraktion zu HttpContext (HttpContextBase) enthalten
Auf diese Weise kann ich die HttpContext-Anforderungen in meinen Unit- / Integrationstests ausschließen, hier ein Beispiel ...
%Vor%Dann kann mein Test Controller und HTTP-Kontext herstellen:
%Vor%Und mein Controller ist sich dessen umgebender HttpContextBase-Instanz bewusst, die Cache- und Anwendungsstatus liefert:
%Vor%Tags und Links c# unit-testing asp.net nunit httpcontext