visual unitarias unit test studio pruebas mvc metodologia interfaz crear c# asp.net unit-testing mocking

c# - test - Pruebas unitarias IHttpModule



unit test c# (3)

¿Cómo se prueba un HttpModule en asp.net dado que HttpApplication y HttpContext no implementan una interfaz?


Básicamente, debe eliminar la dependencia del HttpModule de HttpApplication y HttpContext, reemplazándolos por una interfaz. Puede crear su propia IHttpApplication y IHttpContext (junto con IHttpResonse, IHttpRequest, etc.) o usar las mencionadas por @Dale Ragan o usar las nuevas y relucientes en System.Web.Abstractions que se incluyen con las vistas previas de asp.net mvc.


En el pasado, antes de pasar a ASP.NET MVC, usé esta biblioteca creada por Phil Haack para Unit Testing, que usaba HttpApplication y HttpContext. Se utilizó una biblioteca de pato escribiendo .

Desafortunadamente, esta era la mejor manera de hacerlo. ASP.NET no fue hecho para ser fácilmente comprobable. Cuando trabajaron en ASP.NET MVC, uno de los objetivos es deshacerse de estos dolores de cabeza haciendo que el marco sea más comprobable.


Puede usar un marco de aislamiento (burla). Conozco dos herramientas que te permiten falsificar / simular cualquier objeto .NET: Typemock Isolator y Telerik JustMock, creo que también puedes usar Moles .

Todo lo anterior le permitirá falsificar cualquier evento de objeto .NET si no implementa una interfaz o incluso tiene un administrador público.