Wie kann ich HttpContext für Komponententests fälschen?

9

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 ...

    
ŁukaszW.pl 15.08.2010, 16:16
quelle

3 Antworten

1

Wenn Sie Indizes für die namevaluecollection-Basis benötigen, verwenden Sie bitte den folgenden Code

%Vor%

Um nur Daten zu speichern und Testmethoden zu umgehen, verwenden Sie bitte den obigen Code.

    
Venkat 16.08.2010, 12:56
quelle
2

Bitte gehen Sie durch die folgenden Links, es wird Ihnen helfen.

Ссылка

Mocking und HttpContextBase.get_User ()

Danke Venkat

    
Venkat 15.08.2010 16:22
quelle
0

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%     
Spencer 06.09.2016 13:50
quelle