如何在asp.net中对HttpModule进行单元测试(假设HttpApplication和HttpContext没有实现接口)?
发布于 2008-08-24 18:18:15
从本质上讲,您需要移除HttpModule对HttpApplication和HttpContext的依赖,将它们替换为一个接口。您可以创建自己的IHttpApplication和IHttpContext (以及IHttpResonse、IHttpRequest等),或者使用@Dale Ragan提到的那些,或者使用System.Web.Abstractions中与asp.net mvc预览捆绑在一起的闪亮新功能。
发布于 2008-08-24 18:14:05
过去,在迁移到ASP.NET MVC之前,我使用了为使用HttpApplication和HttpContext的任何东西进行单元测试而创建的this library Phil Haack。它反过来使用了一个Duck Typing library。
不幸的是,这是最好的方法。ASP.NET不是为了易于测试而设计的。当他们在ASP.NET MVC上工作时,其中一个目标是通过使框架更具可测试性来摆脱这些令人头疼的问题。
发布于 2010-12-30 00:08:12
您可以使用隔离(模拟)框架。我知道有两个工具可以让你伪造/模仿任何.NET对象-- Typemock Isolator和Telerik JustMock。我想你也可以使用Moles。
如果.NET对象没有实现接口或者甚至没有公共函数,以上所有这些都将使您能够伪造任何have对象事件。
https://stackoverflow.com/questions/25241
复制相似问题