JUnit,DBUnit 数据库测试
注:这个要提前说一下调用程序中方法测试数据库的时候会出现的问题,测试数据库增删查改,插入数据和更改数据的时候,需要注意到不能存在数据残留。或者造成数据库的破坏,影响数据库的真实数据或实验数据。
解决办法:1、可以创建数据库副本(JUnit只是验证数据库操作代码是否正确)
2、使用DBUnit也是可以解决这个问题的,DBUnit在是使用的DBUnit时候会备份数据库,等测试之后会还原数据库,不会破坏数据。
1、DBUnit数据备份
例:
//备份数据
@Before
public void backupTable(){
//把数据库cnnection进行包装
IDatabaseConnection iDatabaseConnection=new DatabaseConnection(数据库connection连接对象)
//把connection连接上的数据库里面的所有表格形成的IDataSet数据对象
IDataSet data=iDatabaseConnection.createDataSet();
//第一种备份方式,把DataSet数据备份成XML数据结构(多种被封方式)
FlatXmlDataSet.write(data,new FileOutputstream(存储的文件名称);
//第二种备份方式,同第一种相比数据结构不一样
XmlDataSet.write(data,new FileOutputstream(存储的文件名称);
}
//执行数据库增删查改测试
@Test
public void inertData(){
//增删查改测试及验证
}
//还原数据
@After
public void resumeTableData(){
//把数据库cnnection进行包装
IDatabaseConnection iDatabaseConnection=new DatabaseConnection(数据库connection连接对象)
//第一种读取方式
IDataSet data = new FlatXmlDataSet(new FileOutputstream(存储的文件名称));
//第二种读取方式
IDataSet data = new XmlDataSet(new FileOutputstream(存储的文件名称);
//还原数据到数据库
DatabaseOperation.CLEAN_INSTA.execute(iDatabaseConnection,data);
}
这样通过备份还原的方法就可以不影响数据库的数据了,就可以痛痛快快的进行测试了,