专门针对数据库测试的DbUnit入门实战
2014-04-01 11:06
330 查看
比较有用的文档地址:
http://www.dbunit.org/faq.html#streaming
http://www.dbunit.org/properties.html#qualifiedtablenames
http://www.dbunit.org/components.html#streamingdataset
1.dbunit从名字上可以看出,是对有关数据库操作的测试。官网:www.dbunit.org从官网下载dbunit相关的jar包,dbunit还依赖于http://www.slf4j.org和commons-logging.jar,所以也需要下载slf4j,使用它的slf4j-api-1.5.3.jar和slf4j-jcl-1.5.3.jar。
dbunit的原理是:它会把数据库表里的数据和一个xml文件里表示的数据关联起来。也就是说 数据库表里的数据可以导出到一个对应的xml里,同时也可以将一个xml里的数据导入到数据库表里。是相互转换的。
数据库表里的数据<===>xml文件
可以做个测试如下:
工具类
java 代码
package dbunit;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.dbunit.DatabaseUnitException;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.ForwardOnlyResultSetTableFactory;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.database.QueryDataSet;
import org.dbunit.dataset.CachedDataSet;
import org.dbunit.dataset.DataSetException;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.stream.IDataSetProducer;
import org.dbunit.dataset.stream.StreamingDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlProducer;
import org.dbunit.dataset.xml.XmlDataSet;
import org.dbunit.dataset.xml.XmlProducer;
import org.dbunit.operation.DatabaseOperation;
import org.xml.sax.InputSource;
public abstract class DBXMLHelper {
// partial database export
public static void exportPartial(IDatabaseConnection connection,
String fileName, Set tableNames, Map sqls, boolean streamed,
boolean flat) throws SQLException, DataSetException,
FileNotFoundException, IOException {
connection.getConfig().setFeature(
DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, true);
if (streamed)
connection.getConfig().setProperty(
DatabaseConfig.PROPERTY_RESULTSET_TABLE_FACTORY,
new ForwardOnlyResultSetTableFactory());
QueryDataSet partialDataSet = new QueryDataSet(connection);
// all data
if (null != tableNames)
for (Iterator it = tableNames.iterator(); it.hasNext();) {
partialDataSet.addTable((String) it.next());
}
// sql query
if (null != sqls)
for (Iterator it = sqls.keySet().iterator(); it.hasNext();) {
String key = (String) it.next();
partialDataSet.addTable(key, (String) sqls.get(key));
}
if (flat)
FlatXmlDataSet
.write(partialDataSet, new FileOutputStream(fileName));
else
XmlDataSet.write(partialDataSet, new FileOutputStream(fileName));
}
// full database export
public static void exportDatabase(IDatabaseConnection connection,
String fileName, boolean streamed, boolean flat)
throws SQLException, DatabaseUnitException, FileNotFoundException,
IOException {
if (streamed)
connection.getConfig().setProperty(
DatabaseConfig.PROPERTY_RESULTSET_TABLE_FACTORY,
new ForwardOnlyResultSetTableFactory());
IDataSet fullDataSet = connection.createDataSet();
if (flat)
FlatXmlDataSet.write(fullDataSet, new FileOutputStream(fileName));
else
XmlDataSet.write(fullDataSet, new FileOutputStream(fileName));
}
public static void refreshData(IDatabaseConnection connection,
String input, boolean streamed, boolean flat)
throws DatabaseUnitException, SQLException {
// 把Documenth转换为DBUnit的DataSet并解决中文编码问题
// is.setEncoding("GBK");
IDataSetProducer producer;
IDataSet dataSet;
if (flat)
producer = new FlatXmlProducer(new InputSource(input));
else
producer = new XmlProducer(new InputSource(input));
if (streamed)
dataSet = new StreamingDataSet(producer);
else
dataSet = new CachedDataSet(producer);
// 执行插入操作
DatabaseOperation.REFRESH.execute(connection, dataSet);
}
public static void cleanInsertData(IDatabaseConnection connection,
String input, boolean flat) throws DatabaseUnitException,
SQLException {
IDataSetProducer producer;
IDataSet dataSet;
if (flat)
producer = new FlatXmlProducer(new InputSource(input));
else
producer = new XmlProducer(new InputSource(input));
dataSet = new CachedDataSet(producer);
// 执行插入操作
DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet);
}
}
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
package com.test.dbunit;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.database.QueryDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
public class TestApp {
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/dbunit", "root", "");
IDatabaseConnection connection = new DatabaseConnection(conn);
QueryDataSet dataSet = new QueryDataSet(connection);
//将整个person表里的数据导出到 xml文件里
dataSet.addTable("person");
//将users表里符合条件的数据导出到xml文件里
dataSet.addTable("users","select * from users where id < 4");
//导出到dbunit.xml文件里
FlatXmlDataSet.write(dataSet,new FileOutputStream("dbunit.xml"));
}
}
如果想把某个数据库里的所有表里的数据全部导出到某个xml里,又不想通过addTable一个个来添加的话。则必须通过IDatabaseConnection的createDataSet()来创建IDataSet
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/dbunit", "root", "");
IDatabaseConnection connection = new DatabaseConnection(conn);
//如果想把某个数据库里的所有表里的数据全部导出到某个xml里,又不想通过addTable一个个来添加的话。则必须通过IDatabaseConnection的createDataSet()来创建IDataSet
IDataSet dataSet = connection.createDataSet();
//导出到dbunit.xml文件里
FlatXmlDataSet.write(dataSet,new FileOutputStream("dbunit1.xml"));
//也可以用FlatDtdDataSet导出一个对应的dtd文件
FlatDtdDataSet.write(dataSet,new FileOutputStream("dbunit1.dtd"));
}
生成的dbunit.xml内容如下:
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<person/>
<users id="1" username="zhangsan" password="123"/>
<users id="2" username="lisi" password="456"/>
<users id="3" username="wangwu" password="789"/>
</dataset>
2.用dbunit做测试,需要继承DBTestCase,并需要重写protected IDataSet getDataSet() throws Exception
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
package com.test.dbunit;
import java.io.File;
import java.io.FileInputStream;
import org.dbunit.Assertion;
import org.dbunit.DBTestCase;
import org.dbunit.PropertiesBasedJdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ITable;
import org.dbunit.dataset.SortedTable;
import org.dbunit.dataset.filter.DefaultColumnFilter;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;
public class SimpleTest extends DBTestCase {
public SimpleTest()
{
// super();
System.setProperty(
PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS,
"com.mysql.jdbc.Driver");
System.setProperty(
PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL,
"jdbc:mysql://localhost/dbunit");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME,
"root");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD,
"");
}
/**
* 给定数据集
*/
@Override
protected IDataSet getDataSet() throws Exception {
System.out.println("init...");
return new FlatXmlDataSet(new FileInputStream("dbunit.xml"));
}
public void test1() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
Assertion.assertEquals(xmlTable, dbTable);
}
/**
* 表结构和dbunit1.xml结构不一致
*/
public void test2() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit1.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
//第一种写法
// dbTable = DefaultColumnFilter.includedColumnsTable(dbTable,xmlTable.getTableMetaData().getColumns());
//第二种写法
dbTable = DefaultColumnFilter.includedColumnsTable(dbTable,xmlDataSet.getTableMetaData("users").getColumns());
Assertion.assertEquals(xmlTable, dbTable);
}
/**
* 只比较username
*/
public void test3() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit1.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
dbTable = DefaultColumnFilter.excludedColumnsTable(dbTable, new String[]{"id","password"});
xmlTable = DefaultColumnFilter.excludedColumnsTable(dbTable, new String[]{"password"});
Assertion.assertEquals(xmlTable, dbTable);
}
/**
* 表里数据和dbunit2.xml里的数据的顺序不一致
*/
public void test4() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit2.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
SortedTable dbSortedTable = new SortedTable(dbTable,new String[]{"id"});
//按数据库里表结构字段类型来进行排序,如果是int则按int排序,不是依照字符串的形式排序
dbSortedTable.setUseComparable(true);
SortedTable xmlSortedTable = new SortedTable(xmlTable,new String[]{"id"});
//按数据库里表结构字段类型来进行排序,如果是int则按int排序,不是依照字符串的形式排序
xmlSortedTable.setUseComparable(true);
Assertion.assertEquals(xmlSortedTable, dbSortedTable);
}
/**
* 对Users表插入一条记录做测试
* @throws Exception
*/
public void test5() throws Exception{
UsersDB db = new UsersDB();
Users users = new Users();
users.setId(9);
users.setUsername("hello");
users.setPassword("world");
db.save(users);
IDataSet dataSet = getConnection().createDataSet();
ITable actualTable = dataSet.getTable("users");
IDataSet dataSet2 = new FlatXmlDataSet(new File("expected.xml"));
ITable expectedTable = dataSet2.getTable("users");
Assertion.assertEquals(expectedTable, actualTable);
}
/**
* 在把xml里的数据导入到db里之前,需要对数据库里的表的数据做的操作。
*/
protected DatabaseOperation getSetUpOperation() throws Exception
{
System.out.println("setup...");
return DatabaseOperation.CLEAN_INSERT;
}
/**
* 测试执行完以后,需要对数据库里的表里的数据做的操作
*/
protected DatabaseOperation getTearDownOperation() throws Exception
{
System.out.println("teardown...");
return DatabaseOperation.DELETE_ALL;
}
}
其中expected.xml内容为:
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<person/>
<users id="1" username="zhangsan" password="123"/>
<users id="2" username="lisi" password="456"/>
<users id="3" username="wangwu" password="789"/>
<users id="9" username="hello" password="world"/>
</dataset>
http://www.dbunit.org/faq.html#streaming
http://www.dbunit.org/properties.html#qualifiedtablenames
http://www.dbunit.org/components.html#streamingdataset
1.dbunit从名字上可以看出,是对有关数据库操作的测试。官网:www.dbunit.org从官网下载dbunit相关的jar包,dbunit还依赖于http://www.slf4j.org和commons-logging.jar,所以也需要下载slf4j,使用它的slf4j-api-1.5.3.jar和slf4j-jcl-1.5.3.jar。
dbunit的原理是:它会把数据库表里的数据和一个xml文件里表示的数据关联起来。也就是说 数据库表里的数据可以导出到一个对应的xml里,同时也可以将一个xml里的数据导入到数据库表里。是相互转换的。
数据库表里的数据<===>xml文件
可以做个测试如下:
工具类
java 代码
package dbunit;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.dbunit.DatabaseUnitException;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.ForwardOnlyResultSetTableFactory;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.database.QueryDataSet;
import org.dbunit.dataset.CachedDataSet;
import org.dbunit.dataset.DataSetException;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.stream.IDataSetProducer;
import org.dbunit.dataset.stream.StreamingDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlProducer;
import org.dbunit.dataset.xml.XmlDataSet;
import org.dbunit.dataset.xml.XmlProducer;
import org.dbunit.operation.DatabaseOperation;
import org.xml.sax.InputSource;
public abstract class DBXMLHelper {
// partial database export
public static void exportPartial(IDatabaseConnection connection,
String fileName, Set tableNames, Map sqls, boolean streamed,
boolean flat) throws SQLException, DataSetException,
FileNotFoundException, IOException {
connection.getConfig().setFeature(
DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, true);
if (streamed)
connection.getConfig().setProperty(
DatabaseConfig.PROPERTY_RESULTSET_TABLE_FACTORY,
new ForwardOnlyResultSetTableFactory());
QueryDataSet partialDataSet = new QueryDataSet(connection);
// all data
if (null != tableNames)
for (Iterator it = tableNames.iterator(); it.hasNext();) {
partialDataSet.addTable((String) it.next());
}
// sql query
if (null != sqls)
for (Iterator it = sqls.keySet().iterator(); it.hasNext();) {
String key = (String) it.next();
partialDataSet.addTable(key, (String) sqls.get(key));
}
if (flat)
FlatXmlDataSet
.write(partialDataSet, new FileOutputStream(fileName));
else
XmlDataSet.write(partialDataSet, new FileOutputStream(fileName));
}
// full database export
public static void exportDatabase(IDatabaseConnection connection,
String fileName, boolean streamed, boolean flat)
throws SQLException, DatabaseUnitException, FileNotFoundException,
IOException {
if (streamed)
connection.getConfig().setProperty(
DatabaseConfig.PROPERTY_RESULTSET_TABLE_FACTORY,
new ForwardOnlyResultSetTableFactory());
IDataSet fullDataSet = connection.createDataSet();
if (flat)
FlatXmlDataSet.write(fullDataSet, new FileOutputStream(fileName));
else
XmlDataSet.write(fullDataSet, new FileOutputStream(fileName));
}
public static void refreshData(IDatabaseConnection connection,
String input, boolean streamed, boolean flat)
throws DatabaseUnitException, SQLException {
// 把Documenth转换为DBUnit的DataSet并解决中文编码问题
// is.setEncoding("GBK");
IDataSetProducer producer;
IDataSet dataSet;
if (flat)
producer = new FlatXmlProducer(new InputSource(input));
else
producer = new XmlProducer(new InputSource(input));
if (streamed)
dataSet = new StreamingDataSet(producer);
else
dataSet = new CachedDataSet(producer);
// 执行插入操作
DatabaseOperation.REFRESH.execute(connection, dataSet);
}
public static void cleanInsertData(IDatabaseConnection connection,
String input, boolean flat) throws DatabaseUnitException,
SQLException {
IDataSetProducer producer;
IDataSet dataSet;
if (flat)
producer = new FlatXmlProducer(new InputSource(input));
else
producer = new XmlProducer(new InputSource(input));
dataSet = new CachedDataSet(producer);
// 执行插入操作
DatabaseOperation.CLEAN_INSERT.execute(connection, dataSet);
}
}
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
package com.test.dbunit;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.database.QueryDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
public class TestApp {
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/dbunit", "root", "");
IDatabaseConnection connection = new DatabaseConnection(conn);
QueryDataSet dataSet = new QueryDataSet(connection);
//将整个person表里的数据导出到 xml文件里
dataSet.addTable("person");
//将users表里符合条件的数据导出到xml文件里
dataSet.addTable("users","select * from users where id < 4");
//导出到dbunit.xml文件里
FlatXmlDataSet.write(dataSet,new FileOutputStream("dbunit.xml"));
}
}
如果想把某个数据库里的所有表里的数据全部导出到某个xml里,又不想通过addTable一个个来添加的话。则必须通过IDatabaseConnection的createDataSet()来创建IDataSet
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost/dbunit", "root", "");
IDatabaseConnection connection = new DatabaseConnection(conn);
//如果想把某个数据库里的所有表里的数据全部导出到某个xml里,又不想通过addTable一个个来添加的话。则必须通过IDatabaseConnection的createDataSet()来创建IDataSet
IDataSet dataSet = connection.createDataSet();
//导出到dbunit.xml文件里
FlatXmlDataSet.write(dataSet,new FileOutputStream("dbunit1.xml"));
//也可以用FlatDtdDataSet导出一个对应的dtd文件
FlatDtdDataSet.write(dataSet,new FileOutputStream("dbunit1.dtd"));
}
生成的dbunit.xml内容如下:
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<person/>
<users id="1" username="zhangsan" password="123"/>
<users id="2" username="lisi" password="456"/>
<users id="3" username="wangwu" password="789"/>
</dataset>
2.用dbunit做测试,需要继承DBTestCase,并需要重写protected IDataSet getDataSet() throws Exception
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
package com.test.dbunit;
import java.io.File;
import java.io.FileInputStream;
import org.dbunit.Assertion;
import org.dbunit.DBTestCase;
import org.dbunit.PropertiesBasedJdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ITable;
import org.dbunit.dataset.SortedTable;
import org.dbunit.dataset.filter.DefaultColumnFilter;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;
public class SimpleTest extends DBTestCase {
public SimpleTest()
{
// super();
System.setProperty(
PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS,
"com.mysql.jdbc.Driver");
System.setProperty(
PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL,
"jdbc:mysql://localhost/dbunit");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME,
"root");
System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD,
"");
}
/**
* 给定数据集
*/
@Override
protected IDataSet getDataSet() throws Exception {
System.out.println("init...");
return new FlatXmlDataSet(new FileInputStream("dbunit.xml"));
}
public void test1() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
Assertion.assertEquals(xmlTable, dbTable);
}
/**
* 表结构和dbunit1.xml结构不一致
*/
public void test2() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit1.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
//第一种写法
// dbTable = DefaultColumnFilter.includedColumnsTable(dbTable,xmlTable.getTableMetaData().getColumns());
//第二种写法
dbTable = DefaultColumnFilter.includedColumnsTable(dbTable,xmlDataSet.getTableMetaData("users").getColumns());
Assertion.assertEquals(xmlTable, dbTable);
}
/**
* 只比较username
*/
public void test3() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit1.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
dbTable = DefaultColumnFilter.excludedColumnsTable(dbTable, new String[]{"id","password"});
xmlTable = DefaultColumnFilter.excludedColumnsTable(dbTable, new String[]{"password"});
Assertion.assertEquals(xmlTable, dbTable);
}
/**
* 表里数据和dbunit2.xml里的数据的顺序不一致
*/
public void test4() throws Exception{
IDataSet dbDataSet = getConnection().createDataSet();
ITable dbTable = dbDataSet.getTable("users");
IDataSet xmlDataSet = new FlatXmlDataSet(new FileInputStream("dbunit2.xml"));
ITable xmlTable = xmlDataSet.getTable("users");
SortedTable dbSortedTable = new SortedTable(dbTable,new String[]{"id"});
//按数据库里表结构字段类型来进行排序,如果是int则按int排序,不是依照字符串的形式排序
dbSortedTable.setUseComparable(true);
SortedTable xmlSortedTable = new SortedTable(xmlTable,new String[]{"id"});
//按数据库里表结构字段类型来进行排序,如果是int则按int排序,不是依照字符串的形式排序
xmlSortedTable.setUseComparable(true);
Assertion.assertEquals(xmlSortedTable, dbSortedTable);
}
/**
* 对Users表插入一条记录做测试
* @throws Exception
*/
public void test5() throws Exception{
UsersDB db = new UsersDB();
Users users = new Users();
users.setId(9);
users.setUsername("hello");
users.setPassword("world");
db.save(users);
IDataSet dataSet = getConnection().createDataSet();
ITable actualTable = dataSet.getTable("users");
IDataSet dataSet2 = new FlatXmlDataSet(new File("expected.xml"));
ITable expectedTable = dataSet2.getTable("users");
Assertion.assertEquals(expectedTable, actualTable);
}
/**
* 在把xml里的数据导入到db里之前,需要对数据库里的表的数据做的操作。
*/
protected DatabaseOperation getSetUpOperation() throws Exception
{
System.out.println("setup...");
return DatabaseOperation.CLEAN_INSERT;
}
/**
* 测试执行完以后,需要对数据库里的表里的数据做的操作
*/
protected DatabaseOperation getTearDownOperation() throws Exception
{
System.out.println("teardown...");
return DatabaseOperation.DELETE_ALL;
}
}
其中expected.xml内容为:
Java代码
![](http://ttitfly.iteye.com/images/icon_star.png)
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<person/>
<users id="1" username="zhangsan" password="123"/>
<users id="2" username="lisi" password="456"/>
<users id="3" username="wangwu" password="789"/>
<users id="9" username="hello" password="world"/>
</dataset>
相关文章推荐
- DbUnit入门实战
- DbUnit入门实战
- DbUnit入门实战(转载)
- DbUnit入门实战
- DbUnit入门实战
- DbUnit入门实战
- DbUnit入门实战
- Apache Curator入门实战
- Android零基础入门第9节:Android应用实战,不懂代码也可以开发
- CMake快速入门教程-实战
- << React Native 入门与实战>>----第2章 React Native开发基础
- ElasticSearch实战-入门
- Spark入门实战系列--6.SparkSQL(上)--SparkSQL简介
- 针对Quant的Python快速入门指南
- redis 快速入门实战
- 云星数据---Scala实战系列(精品版)】:Scala入门教程031-Scala实战源码-Scala 对象 01
- 云星数据---Scala实战系列(精品版)】:Scala入门教程037-Scala实战源码-Scala match语句02 条件守卫
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- Spring Cloud实战微服务入门
- Spark RDD/Core 编程 API入门系列之动手实战和调试Spark文件操作、动手实战操作搜狗日志文件、搜狗日志文件深入实战(二)