单元测试实践小结[7]

发表于:2010-04-30来源:作者:点击数: 标签:实践单元
单元测试实践小结[7] 软件测试 第二个问题如何测试: 0. 测试数据准备 可以将BA准备的数据导出。在利用Excel编辑产生一批数据。但是每个 UnitTest 测试本身应该focus一个关注点上,所以每个UnitTest的数据保持在较少的水平上。另外由于DBUnit导入数据的顺序

  单元测试实践小结[7]   软件测试

  第二个问题如何测试:

  0. 测试数据准备

  可以将BA准备的数据导出。在利用Excel编辑产生一批数据。但是每个UnitTest测试本身应该focus一个关注点上,所以每个UnitTest的数据保持在较少的水平上。另外由于DBUnit导入数据的顺序是依据sheet的顺序的,请注意把所有外键表在前,否则插入数据时,会报外键不存在错误。

  1. 数据库的选择

  a.可以直接用小组用的开发数据库。优点:现成的, 所有schema都建好了。缺点:目前数据库的数据干净性无法保证,连接速度太慢。

  b.使用hsqldb。优点:利用其内存模式,可以随测试程序启动,简单小巧,schema可以自行定义,每人各自一套互不影响。 缺点:无法提供PLSQL支持。出于UnitTest本身的要求,以及性能上考量,大部分情况下,建议使用hsqldb,对于涉及到PLSQL的,需要mock处理。

  2.测试hbm

  利用hsqldb内存数据库,在setup的时候,利用hibernate的SchemaExport工具类,将hbm导出成数据库的schema,如果有确实有潜在问题,那么测试程序将不通过。

  3.测试Dao

  很简单了,调用dao程序操作。对于save,update和delete操作的。需要利用原始的connection执行查询验证。对于组合查询的和逻辑排序的,就是一般的做法了。

  4.在使用DBUnit时,测试非只读操作时,我们经常会采用 DatabaseOperation.CLEAN_INSERT 策略.在关联表比较多时,效率会很差.因为每次setUp,tearDown时都会重新先Delete,再Insert所有的数据.另外,我们还有一种数据库操作测试的策略,就是使用真实数据库,在每次操作完毕后都回滚事务.

原文转自:http://www.ltesting.net