整段的关键是<operation>语句共6种类型,其中CLEAN_INSERT是更彻底的恢复原样,我们主要的维和手段,不过在很多外键很多的时候有点麻烦,要注意表的排列顺序, dbunit是从xml文件的最后删起的.
预设数据可以是手工写就的,也可以从数据库中倒出。怎么看,维护这个XML都比维护长长的SQL语句强。
下面语句不管三七二一,导出全部table。
<dbunit ...> <export dest="export.xml"/> </dbunit>
下面语句导出一个由查询语句产生的DataSet和一个table。
<dbunit ...>
<export dest="partial.xml">
<query name="FOO" sql="SELECT * FROM FOO WHERE last_name='Marquiss'"/>
<table name="FOO123"/>
</export>
</dbunit>
说是非法雇用,因为DBUnit属于JUnit一脉,维持数据库稳定只是它的副作用。
它主要作用还是写TestCase。通过它特有的
public static void assertEquals(ITable expected, ITable actual)
public static void assertEquals(IDataSet expected, IDataSet actual)
比较数据库中的数据是否符合预设的数据。不过因为Oracle Sequence的一往无前,这个功能我还没有用到(除非每次测试都把Sequence删掉重建并滚动到恰当的位置)
所以,在单元测试中, DBUnit更多的责任也还是负责数据库的稳定,用DatabaseOperation类执行刚才提到的操作,其中还要解决中文问题,详见下文.
另,Oracle的数据库必须写schema.
本文地址:http://com.8s8s.com/it/it11381.htm