[英]Unit testing IHttpModule
鉴于HttpApplication
和HttpContext
没有实现接口,如何在asp.net中对HttpModule
进行单元测试?
本质上,您需要删除HttpModule对HttpApplication和HttpContext的依赖,并用一个接口替换它们。 您可以创建自己的IHttpApplication和IHttpContext(以及IHttpResonse,IHttpRequest等),也可以使用@Dale Ragan提到的内容,也可以使用与ASP.NET MVC预览捆绑在一起的System.Web.Abstractions中的闪亮内容。
过去,在迁移到ASP.NET MVC之前,我使用了Phil Haack创建的该库用于单元测试, 该库使用了HttpApplication和HttpContext。 反过来,它使用了Duck Typing库 。
不幸的是,这是最好的方法。 ASP.NET并非易于测试。 当他们研究ASP.NET MVC时,目标之一是通过使框架更具可测试性来摆脱这些麻烦。
您可以使用隔离(模拟)框架。 我知道有两种工具可以使您伪造/模拟任何.NET对象-Typemock隔离器和Telerik JustMock,我认为您也可以使用Moles 。
以上所有内容使您可以伪造任何.NET对象事件,如果该对象未实现接口,甚至没有公共控件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.