Was ist das umfassendste Mock Framework für HttpContext?

9

Ich suche nach einem möglichst umfassenden Ersatz und Wrapper für den ASP.NET HttpContext in meinen Anwendungen. Ein umfassender Mock-Ersatz könnte die Testbarkeit meiner ASP.NET-Webanwendungen erheblich erhöhen, ohne dass jede Anwendung auf besser testbare Frameworks wie MVC migriert werden muss.

Zu den Features, die ich am meisten in einem HttpContext -Wrapper und Mock-Framework sehen möchte, gehören:

  • Serialisierter Sitzungsspeicher (z. B. .Session ).
  • Serialisierter anwendungsspezifischer Speicher (z. B. .Application ).
  • Artikelspeicher pro Anfrage (z. B. .Items ).
  • HttpRequest-Daten, wie z. B. Referrer, Request Uri, Servervariablen, Post-Daten usw.
  • HttpResponse-Daten wie Statuscodes und Inhalt.
  • Lokale Dateiauflösung (z. B. Server.MapPath )
  • VirtualPathUtility für die anwendungsbezogene URL-Pfadauflösung, die von der ASP.NET-Laufzeit abhängig ist.
  • Die Identität und das Prinzipal (z. B. .User ) für die Validierung der Authentifizierungs- / Autorisierungsregeln.
  • Die Sammlung AllErrors zum Testen der Fehlerauflösung in HttpModule s und Global.asax .

Ich habe überlegt, meine eigene Schnittstelle, Wrapper und Mock zu schreiben; Ich glaube jedoch, dass das schon existieren muss. Die Vielfalt der Mock-Frameworks ist ein wenig überwältigend für einen Anfänger zu absorbieren.

Was ist der umfangreichste HttpContext Wrapper und Mock, den Sie empfehlen würden?

    
kbrimington 25.08.2010, 21:50
quelle

2 Antworten

2

Meine Firma hat es gut gemacht, nur Schnittstellen für alle http-Objcets (IHttpRequest, IHttpResponse usw.) zu erstellen.

Es ist ein wenig repetierend, benötigt aber grundsätzlich alle Methoden und Eigenschaften auf der Oberfläche Erstellen Sie dann für jeden einen konkreten Typ, der den realen Typ als Konstruktorparameter verwendet und alle Methoden und Eigenschaften an das reale Objekt übergibt.

Dann können Sie alles problemlos mit RhinoMocks oder was auch immer testen.

    
Michael Baldry 27.08.2010, 08:18
quelle
1

Sehen Sie sich das moq Framework an. Dies ist der spöttische Rahmen, den das MVC-Team verwendet, und es wird von vielen (einschließlich mir selbst) als die niedrigste Eintrittsbarriere angesehen. Überprüfen Sie auch die spöttischen Helfer im Projekt MvcContrib .

    
Steve Michelotti 26.08.2010 21:24
quelle