对于我的 ASP.NET MVC3(新)开发,我不想创建对 MvcContrib TestHelper(以及 Rhino Mocks)的依赖,除非它提供了重要的价值。所以我想了解这个助手的当前状态。
文档说 TestHelper 为以下控制器依赖项生成假货:
- HttpContext
- HttpRequest
- HttpResponse
- HttpSession
- 形式
- 临时数据
- 请求参数
- 应用路径
- 路径信息
对于 MVC1 和 MVC2,我可以看到为什么这很有帮助。但是 MVC3 开始引入改进的测试“接缝”,这可能使 TestHelper 的相关性降低。例如,MVC3Request
和Response
控制器属性专门设计为 HttpRequest 和 HttpResponse 的可隔离/可注入版本。
由于我仍在探索 MVC3 中的可测试性改进,我想知道上面列出的其他依赖项中有多少在 MVC3 中得到了改进的隔离(或可注入性)。我还希望看到代码示例显示在 MVC3 中使用 TestHelper 和不使用 TestHelper 为上述依赖项创建带有假货(存根/模拟)的测试。
如果使用和不使用 TestHelper 的测试编写差异足够小,那么我宁愿放弃 TestHelper ......这意味着我可以自由选择我喜欢的任何隔离框架(MOQ 或NSubstitute)。
最终,当我得知 MVC3 版本针对 HttpRequest 和 HttpResponse 采取了特定改进的可测试性步骤时,我会感到惊讶,但对于上面列出的其他依赖问题却没有。我希望有人可以在不使用 TestHelper 的情况下详细说明上述项目是如何隔离的。