不要认为压力大就不写测试代码相反编写测试代码会使你的压力逐渐减轻应为通过编写测试代码你对类的行为有了确切的认识你会更快地编写出有效率地工作代码
下面是一些具体的编写测试代码的技巧或较好的实践方法
不要用TestCase的构造函数初始化Fixture而要用setUp()和tearDown()方法
不要依赖或假定测试运行的顺序因为JUnit利用Vector保存测试方法所以不同的平台会按不同的顺序从Vector中取出测试方法
避免编写有副作用的TestCase例如如果随后的测试依赖于某些特定的交易数据就不要提交交易数据简单的会滚就可以了
当继承一个测试类时记得调用父类的setUp()和tearDown()方法
将测试代码和工作代码放在一起一边同步编译和更新(使用Ant中有支持junit的task)
测试类和测试方法应该有一致的命名方案如在工作类名前加上test从而形成测试类名
确保测试与时间无关不要依赖使用过期的数据进行测试导致在随后的维护过程中很难重现测试
如果你编写的软件面向国际市场编写测试时要考虑国际化的因素不要仅用母语的Locale进行测试
尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法可以使代码更为简洁
测试要尽可能地小执行速度快
JUnit和ant结合
ant 提供了两个 target junit 和 junitreport 运行所有 测试用例 并生成 html 格式的报表
具体操作如下
将 junitjar 放在 ANT_HOME\lib 目录下
修改 buildxml 加入如下 内容
<property name=report value=report />
<target name=junitreport depends=clean compile>
<junit printsummary=on fork=true haltonfailure=false failureproperty=testsfailed showoutput=true>
<classpath refid=myclasspath/>
<formatter type=xml/>
<batchtest todir=${report}>
<fileset dir=${build}>
<include name=**/*Test*/>
</fileset>
</batchtest>
</junit>
<junitreport todir=${report}>
<fileset dir=${report}>
<include name=TEST*xml/>
</fileset>
<report format=frames todir=${report}/>
</junitreport>
<fail if=testsfailed> One or more tests failed check the report for detail </fail>
</target>
[] [] []