2010-08-25 8 views
9

Ich bin so umfassend wie möglich von einem Mock Ersatz und Wrapper für die ASP.NET HttpContext in meinen Anwendungen suchen. 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.Was ist das umfassendste Spott Framework für HttpContext

Einige der Funktionen, die ich bin am meisten interessiert in einem HttpContext Wrapper und Mock Rahmen zu sehen sind:

  • Serialized Sitzungsspeicher (zum Beispiel .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.
  • Local Dateiauflösung (z.B. Server.MapPath)
  • VirtualPathUtility für anwendungs ​​relative Auflösung URL-Pfad, die eine Abhängigkeit von der Laufzeit ASP.NET hat.
  • Die Identität und das Prinzipal (z. B. .User) zum Überprüfen der Authentifizierungs-/Autorisierungsregeln.
  • Die AllErrors Sammlung zum Testen der Fehlerauflösung in HttpModule s und Global.asax.

Ich dachte über das Schreiben meiner eigenen Schnittstelle, Wrapper und Mock; 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 die umfassendste HttpContext Wrapper und Mock, die Sie empfehlen würden?

Antwort

2

Meine Firma ist gut mit nur Schnittstellen für alle http Objcets (IHttpRequest, IHttpResponse, etc.) erstellen.

Es ist ein bisschen repetierend, aber grundsätzlich alle Methoden und Eigenschaften auf der Schnittstelle dann erstellen Sie einen konkreten Typ für jede, die den realen Typ als Konstruktor Parameter und übergibt alle Methoden und Eigenschaften durch das reale Objekt.

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

+0

Es scheint, dass Sie am richtigsten sind. .NET 3.5 führt die 'HttpContextBase' ein, vorher war das Mocking jedoch nur mit benutzerdefinierten Wrappern möglich. Ich denke, es wäre vorteilhaft, einen gut konzipierten Mock-Wrapper für HttpContext zu sehen, um verbesserte automatisierte Funktionstests zu ermöglichen. Ich halte meine Augen offen. – kbrimington

1

Überprüfen Sie die moq Rahmen. 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. Schau dir auch die spöttischen Helfer im Projekt MvcContrib an.

+0

Die Frage ist nicht für ASP.NET MVC, aber für ASP.NET Web Forms. Für MVC ist es einfach, sich über den HTTP-Kontext lustig zu machen. :) – bzlm

+0

Ups - ich stehe korrigiert. –

+0

Keine Notwendigkeit für Down-Stimmen hier. Ich schaue mir moq an. Ist es möglich/praktisch, MvcContrib-Klassen in herkömmlichem ASP.NET zu verwenden? – kbrimington