一个 ASP.NET MVC 3 Web 应用程序有几个部分组成——模型(model)、控制器(controller)、路由处理器(route-handler)、视图(view)、html-helper、客户端代码等。其中大部分模块都可以进行单元测试,有一些则需要集成测试。关于如何让测试更易维护以及如何避免它们过于脆弱,有一些最佳实践能够帮得到你。
以下是一些测试相关的资源介绍:
- 不仅是 actions,你还可以使用 MvcScaffolding 生成单元测试的基架模板 (scaffolding) ;
- 使用自定义 HTML Helpers ,而不要在视图中编写大量逻辑,因为前者更容易进行单元测试。另外,测试自定义 html-helper 时应避免硬编码 html 元素;
- 使用类似 Specflow 的 BDD 框架编写端到端的验收测试;
- 尽管在路由表之外添加新的路由很容易破坏已有路由,但你可以通过对路由表进行单元测试来避免该问题;
- 打开视图编译开关。 这虽然并不完全是单元测试,但它可以帮助发现运行时才能看到的错误;
- 如果 UI 变化不大,可以使用 WaTiN 来测试 UI。另外,可以通过使用页面对象(Page Object)调整 UI 设计改动,来让集成测试变得稍微灵活些;
- 使用一款 JS 测试框架,如使用 Jasmine 来测试 JavaScript 。
您还知道什么其他的测试 ASP.NET MVC 应用程序的技巧吗?请留言支招。
评论