最佳实践:对IHttpModule进行单元测试的方法

3
我正在使用C#编写一个HttpModule,并编写了一些单元测试来测试代码。
这个模块非常简单,它只是检查一些cookie,并根据我们的业务逻辑使需要过期的cookie过期。
但我想确保这不会破坏任何东西。所以我想好好地测试它!
我已经阅读了有关使用System.Web.Abstractions对请求和响应对象进行模拟的文章。这很棒,并且有效!更多信息请参见:http://www.kongsli.net/nblog/2009/05/03/aspnet-35-improving-testability-with-systemwebabstractions/ 但是,当涉及编写HttpModules时,我想知道是否有什么我真正需要测试的内容。例如,与我的业务逻辑代码没有直接关系的某些内容。例如,测试我正确地释放模块,或者其他可能会破坏的内容。
谢谢, JP
1个回答

3

简单易懂:

  1. 不要把逻辑放在 IHttpModule 实现中。
  2. 由于你只修改了 cookies,直接传递到自己的类中即可。

示例:

void InYourHttpModule()
{
    myLogic.Invoke(Request.Cookies, Response.Cookies);
}

这样就非常容易验证你的逻辑是否按照要求执行,而不做其他事情。


这就是我已经在做的。只是想知道测试其他东西是否也是一个好主意,比如集成测试。 - Jay Pete
为什么?你除了 cookie 以外不修改任何东西吗? - jgauffin
2
在这里尝试学习一些东西。不习惯使用HttpModules,并希望确保没有因为不理解HttpModules的工作方式而错过了什么。 - Jay Pete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接