一个ASP.NET MVC 3 Web应用程序有几个部分组成——模型(model)、控制器(controller)、路由处理器(route-handler)、视图(view)、html-helper、客户端代码等。其中大部分模块都可以进行单元测试,有一些则需要集成测试。关于如何让测试更易维护以及如何避免它们过于脆弱,有一些最佳实践能够帮得到你。

  以下是一些测试相关的资源介绍:

  1、不仅是actions,你还可以使用MvcScaffolding生成单元测试的基架模板 (scaffolding) ;

  2、使用自定义HTML Helpers,而不要在视图中编写大量逻辑,因为前者更容易进行单元测试。另外,测试自定义html-helper时应避免硬编码html元素;

  3、使用类似Specflow 的BDD框架编写端到端的验收测试;

  4、尽管在路由表之外添加新的路由很容易破坏已有路由,但你可以通过对路由表进行单元测试来避免该问题;

  5、打开视图编译开关。 这虽然并不完全是单元测试,但它可以帮助发现运行时才能看到的错误;

  6、如果UI变化不大,可以使用WaTiN来测试UI。另外,可以通过使用页面对象(Page Object)调整UI设计改动,来让集成测试变得稍微灵活些;

  7、使用一款JS测试框架,如使用Jasmine来测试JavaScript。

  您还知道什么其他的测试ASP.NET MVC应用程序的技巧吗?请留言支招。

  查看英文原文: