dbunit使用

使用dbunit,可以帮助我们在测试中维护数据,也可以辅助我们的测试。

首先当然是下载dbunit, http://dbunit.sourceforge.net

我测试用的是 MYSQL 5.0 。

建立数据库:
create table test1(
id int not null auto_increment,
user_name varchar(50),
primary key(id)) engine=innodb;


保存数据的xml文件:

<dataset>
<test1 user_name="tom"/>
<test1 user_name="John"/>
<test1 user_name="Rose"/>
</dataset>



首先建立一个 JunitTest 的类:



public class Test2 extends TestCase {

protected void setUp() throws Exception {

}

protected void tearDown() throws Exception {

}

}


我不喜欢继承dbunit的类,所以我们在JunitTest 的类里增加这个变量:


public class Test2 extends TestCase {

private IDatabaseTester databaseTester;

protected void setUp() throws Exception {

}

protected void tearDown() throws Exception {

}

}


然后,我们可以该写 setUp() 方法了,无非就是连接数据库,把数据倒入到表里。



protected void setUp() throws Exception {

databaseTester = new JdbcDatabaseTester("com.mysql.jdbc.Driver",
"jdbc:mysql://127.0.0.1:3306/test", "root", "123");

IDataSet dataSet = getDataSet();

databaseTester.setDataSet( dataSet );
databaseTester.onSetup();


}

protected IDataSet getDataSet() throws Exception
{

return new FlatXmlDataSet(new FileInputStream(new File("dataset.xml")));
}



然后是 tearDown 方法

protected void tearDown() throws Exception
{

databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
databaseTester.onTearDown();
}


好了,准备工作完成了,下面开始写测试方法。


public void test1() throws Exception{

ITable test1Table = databaseTester.getDataSet().getTable("test1");
assertEquals(test1Table.getRowCount(), 3);

}

这个方法就是测试 test1 表有多少条记录


public void test2() throws Exception{

ITable test1Table = databaseTester.getConnection().createQueryTable("any_name",
"select user_name from test1 where user_name='tom'");

assertTrue(test1Table.getRowCount()==1);

}

这个方法测试是否有 user_name='tom' 这个记录.


那么自动增加字段怎么办呢?
只要在 tearDown 里增加

databaseTester.setTearDownOperation(DatabaseOperation.TRUNCATE_TABLE);

就可以了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值