3

我在 ASP.Net 上构建了一个小的替代 MVC 框架(尽管没有严格绑定到它)。我经常搞砸的事情之一是HttpContext实例和HttpContext.Current. 最近,我尝试为我的框架进行一些单元测试,发现 HttpContext 是出了名的难以测试。因为我的应用程序不一定与 ASP.Net 相关联,所以我尝试重新实现 HttpContext、HttpRequest 和朋友的更基本版本,但对于必须包含在这些类中的大量信息而言,这是一项艰巨的任务。

我究竟应该怎么做?寻找一种解决方法来测试 HttpContext 或重组我的代码以不显式依赖它?或者,还有更好的方法?直接使用 HttpContext 是不是很多坏事?

4

1 回答 1

2

我完全理解你的痛苦。我在这个 ASP MVC 2 上花了很多时间。

在我自己的挣扎中,我发现了关于单元测试与集成测试的各种讨论。我可以理解其中的区别,但我会尽可能在尽可能接近生产的环境中进行集成测试。我很有可能会因为这样说而被钉在墙上;我不害怕。

我尝试了几种不同的方法来模拟单元测试时所需的各种类,包括开源以及 TypeMock 和 Isolator 的试用。最后我找到了一篇专门关于集成测试的文章,它解决了我试图克服的大部分问题。看这里:

http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/

我真的不能说你应该如何构建你的代码。从我在 ASP MVC 源代码中看到的内容来看,我不明白为什么不应该使用 HttpContext,即使测试起来确实很痛苦。

这有帮助吗?如果您有兴趣,我很乐意分享我尝试过的各种解决方案的一些示例。

于 2012-10-28T03:26:14.550 回答