8

鉴于此,您如何HttpModule在 asp.net 中对a 进行单元测试HttpApplication并且HttpContext不实现接口?

4

3 回答 3

2

本质上你需要去掉 HttpModule 对 HttpApplication 和 HttpContext 的依赖,用一个接口代替它们。您可以创建自己的 IHttpApplication 和 IHttpContext(以及 IHttpResonse、IHttpRequest 等)或使用@Dale Ragan 提到的那些或使用与 asp.net mvc 预览捆绑在一起的 System.Web.Abstractions 中闪亮的新的。

于 2008-08-24T18:18:14.910 回答
1

过去,在迁移到 ASP.NET MVC 之前,我使用Phil Haack 创建的这个库,用于对任何使用 HttpApplication 和 HttpContext 的东西进行单元测试。它反过来使用了Duck Typing 库

不幸的是,这是最好的方法。ASP.NET 并非易于测试。当他们在 ASP.NET MVC 上工作时,目标之一是通过使框架更具可测试性来摆脱这些令人头疼的问题。

于 2008-08-24T18:14:04.530 回答
0

您可以使用隔离(模拟)框架。我知道有两个工具可以让你伪造/模拟任何 .NET 对象 - Typemock IsolatorTelerik JustMock我认为你也可以使用Moles

如果任何 .NET 对象事件没有实现接口,甚至没有公共 c'tor,以上所有这些都将使您能够伪造任何 .NET 对象事件。

于 2010-12-29T16:08:12.260 回答