[笔记]单元测试的最佳实践(整理自王维平的ppt)

如果单元测试依赖一些本地资源文件的话,最好把测试需要的资源文件放到classpath中或者是项目下的某个目录中,也就是说要保证测试在任何环境下都可以正常运行
数据库相关的测试的一个主要的问题就是需要一个实际存在的数据库并且在每次测试完成之后都不能在数据库中引入垃圾数据。在测试的时候不要引入不必要的测试数据。要实现这个目标有两种方式:
 一、使用一个和实际数据库一样的测试数据库
 二、在每个测试完成之后,数据库事务自动回滚
 三、使用Hibernate这种sql自动生成的ORM框架中,测试的时候使用内存数据库应该是一个最佳选择
 四、对于采用iBatis这种半自动化的ORM时,测试的最好方式就是使用一个真实的数据库结合上面的第二点

对于servlet/taglib/struts这些类实际上都是调用我们后台写好服务类来完成相应的功能的。

所以在很多情况下,我们只需要对我们所调用的服务类做单元测试就可以了
怎样才能很快的知道其中的改变是否会影响另一方
回归测试 在每次源代码发生变化的时候都重新运行所有的单元测试,而不只是运行所修改过的单元测试
关于回归测试大多数会采用一些工具来协助,达到自动化完成。目前采用最多的应该是持续集成平台,比如AnthillPro/CruiseControl
关于持续集成可以参考Martin Fowler的这篇文章:
         http://martinfowler.com/articles/continuousIntegration.html

posted @ 2011-09-22 11:25  gmartincn  阅读(426)  评论(0编辑  收藏  举报