我在ASP.Net上建立了一个小的替代MVC框架(虽然没有严格依赖它)。我经常搞乱的一件事是HttpContext
个实例和HttpContext.Current
。最近,我试图为我的框架进行一些单元测试,发现HttpContext很难被测试。因为我的应用程序不一定与ASP.Net绑定,所以我尝试重新实现更基本的HttpContext,HttpRequest和朋友版本,但这对于必须包含在这些类中的剪切信息量是一项巨大的任务。
我到底该怎么办?找一个使用HttpContext进行测试的工作,或者重新构建我的代码,以便不那么明确地依赖它?或者,还有更好的方法?直接使用HttpContext很多坏事吗?
答案 0 :(得分:2)
我完全理解你的痛苦。我用这个ASP MVC 2花了很多时间。
在我自己的挣扎中,我发现了有关单元测试与集成测试的各种讨论。我可以理解这种区别,但我尽可能在尽可能接近生产的环境中进行集成测试。我很有可能会因为这样说而被钉在墙上;我不害怕。
我尝试了几种不同的方法来模拟单元测试所需的各种类,包括开源和TypeMock和Isolator的试用。最后,我发现了一篇专门关于集成测试的文章,它解决了我试图克服的大部分问题。见这里:
http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/
我真的不能说你应该如何构建你的代码。从我在ASP MVC源代码中看到的情况来看,我不明白为什么不应该使用HttpContext,即使测试它真的很痛苦。
这有帮助吗?如果您有兴趣,我很乐意分享我尝试的各种解决方案的一些示例。