Come si esegue il test dell'unità su HttpModule
in asp.net dato che HttpApplication
e HttpContext
non implementano un'interfaccia?Unit test IHttpModule
risposta
In passato prima di passare a ASP.NET MVC, ho utilizzato this library Phil Haack creato per Test unità tutto ciò che utilizzava HttpApplication e HttpContext. A sua volta usato uno Duck Typing library.
Purtroppo, questo era il modo migliore per farlo. ASP.NET non è stato creato per essere facilmente testabile. Quando hanno lavorato su ASP.NET MVC, uno degli obiettivi è quello di sbarazzarsi di questi mal di testa rendendo il framework più testabile.
In sostanza è necessario per rimuovere la dipendenza del modulo Http su HttpApplication e HttpContext, la loro sostituzione con un'interfaccia. Si potrebbe creare il proprio IHttpApplication e IHttpContext (insieme a IHttpResonse, IHttpRequest, ecc) o utilizzare quelli menzionati da @Dale Ragan o utilizzare quelli lucidi nuovi in System.Web.Abstractions che sono in bundle con le anteprime MVC ASP.NET.
È possibile utilizzare un quadro di isolamento (beffardo). Conosco due strumenti che consentono di simulare/simulare qualsiasi oggetto .NET - Typemock Isolator e Telerik JustMock Penso che sia possibile utilizzare anche Moles.
Tutti i precedenti consentiranno di falsificare qualsiasi evento oggetto .NET se non implementa un'interfaccia o ha anche un lettore pubblico.
Potete indicarmi l'articolo di @Dale Ragan. PS: Non ho accesso a Twitter – chugh97
In realtà mi riferisco alla risposta direttamente sotto questo :) – Mike