Wie testen Sie Einheit HttpModule
in asp.net unter der Voraussetzung, dass HttpApplication
und HttpContext
keine Schnittstelle implementieren?Komponententest IHttpModule
Antwort
In der Vergangenheit vor dem Wechsel zu ASP.NET MVC, habe ich this library Phil Haack für Unit Testing alles erstellt, die die HttpApplication und HttpContext verwendet. Es wurde ein Duck Typing library verwendet.
Leider war dies der beste Weg, es zu tun. ASP.NET wurde nicht leicht testbar gemacht. Als sie an ASP.NET MVC arbeiteten, bestand eines der Ziele darin, diese Kopfschmerzen loszuwerden, indem das Framework testbarer gemacht wurde.
Im Wesentlichen müssen Sie die Abhängigkeit des HttpModuls von HttpApplication und HttpContext entfernen und sie durch eine Schnittstelle ersetzen. Sie könnten Ihre eigenen IHttpApplication und IHttpContext (zusammen mit IHttpResonse, IHttpRequest, etc) oder verwenden Sie die von @Dale Ragan oder verwenden Sie die glänzenden neuen in System.Web.Abstractions, die mit den asp.net mvc-Vorschauen gebündelt sind.
Sie können ein Framework für die Isolierung (Mocking) verwenden. Ich kenne zwei Tools, mit denen Sie alle .NET-Objekte - Typemock Isolator und Telerik JustMock fälschen/vortäuschen können. Ich denke, dass Sie auch Moles verwenden können.
Mit alldem können Sie ein beliebiges .NET-Objektereignis fälschen, wenn es keine Schnittstelle implementiert oder sogar einen öffentlichen c'tor hat.
- 1. Verwenden von IHttpModule über Global.asax
- 2. Wie ordne ich IHttpModule korrekt?
- 3. Zugriff auf SessionState in IHttpModule nach 404?
- 4. Komponententest: Number.toLocaleString()
- 5. Komponententest ASP.NET MVC-Umleitung
- 6. CakePHP 2.3 - Komponententest Benutzeranmeldung
- 7. Komponententest XML-Generierung
- 8. Qt Ereignisschleife und Komponententest?
- 9. Gute Literatur zum Komponententest?
- 10. Komponententest fehlgeschlagen EF Entry.State
- 11. Komponententest mit JMS (ActiveMQ)
- 12. Komponententest in XCode 4
- 13. Komponententest ASP.NET Code hinter
- 14. Komponententest mit netzwerkorientiertem Code
- 15. Komponententest DTS-Pakete
- 16. Gute Ressourcen zum Komponententest?
- 17. Komponententest mit Datenzugriffsschicht
- 18. Komponententest für Perls Sortierung
- 19. Komponententest ereignisgesteuert Javascript
- 20. Was ist Komponententest?
- 21. Komponententest überspringt alle Unterbrechungspunkte
- 22. Komponententest-Framework für C
- 23. Komponententest TestContext Mehrere Aufrufe
- 24. SpringBoot: Komponententest mit Cassandra
- 25. Komponententest $ window resize-Methode
- 26. Komponententest für Einfügebefehl
- 27. UnatisfiedLinkError beim Komponententest WritableNativeMap
- 28. Komponententest Cocoa User Interface
- 29. Komponententest in CakePHP?
- 30. Komponententest WPF-Bindungen
Können Sie mich auf @Dale Ragans Artikel verweisen. PS: Ich habe keinen Zugriff auf Twitter – chugh97
Ich beziehe mich tatsächlich auf die Antwort direkt darunter :) – Mike