DBUnit框架概述
1.概述
1.1 框架介绍
DbUnit为数据库驱动的项目提供的一个对JUnit 的扩展!
除了提供一些常用功能,它可以将你的数据库置于一个测试轮回之间的状态
1.2 特点特性
在企业应用开发中,与数据库打交道是必不可少的!
虽然我们可以利用Dao模式在相当大程度上屏蔽数据库的存在。
然而对于复杂数据库查询逻辑的测试依然必不可少,这就需要真实的访问数据库,
而DBUnit提供了单元测试需要的数据库的数据准备工作。
而这一个工作对于集成测试也是有用的。
1.3 入门参考资料
网站:http://dbunit.sourceforge.net/
入门文档:http://dbunit.sourceforge.net/intro.html
最佳实践:http://dbunit.sourceforge.net/bestpractices.html
;
1.4 what SpringSide do
虽然DbUnit提供了完整的TestCase基类, 然而由于大部分公司和项目都有基于项目需要的TestCase基类和派生类,我们并不能直接应用!
SpringSide抽出了其核心------数据库数据的准备和回收工作,即org.springside.core.test.support.DataBaseUnitHelper。
1. DataBaseUnitHelper提供了三种数据库连接配置能力。
a. 在classpath根目录下提供DbUnit.properties,这个是缺省的配置方法。
b. 通过给定的properties文件路径配置
c. 通过程序指定Properties对象配置
2. DataBaseUnitHelper采用Excel作为数据库数据的来源。
虽然DbUnit支持多种数据来源,不过根据实践来看,Excel是最容易编辑和获取(大部分的数据库开发工具支持将数据导出为Excel)。
3. DataBaseUnitHelper提供两种数据库数据的配置和回收的应用策略
a. 对于TestCase,在每次Setup时,都先清空数据库,随后插入准备数据
b. 对于TestCase,只在第一次Setup时先清空数据库,随后插入准备数据,而后不在做任何动作。
2. DataBaseHelper在SpringSide的应用
org.springside.core.test.FunctionWithDataBaseTestCase提供了一个例子描述如何应用和封装DataBaseHelper
3. 讨论
DbUnit提供了很多的数据库数据的配置和回收策略,SpringSide只是应用了一小部分,项目在使用需要根据需要定制。