本文翻译自《JUnit in Action 2nd Edition》第十六章, 原书见
《DbUnit测试一 数据库测试挑战》附件。
二、DbUnit
DbUnit(http://www.dbunit.org) 是一个Junit的扩展,由Manuel LaFlamme于2002年创建,在Java测试还处于幼年的时候,没有什么框架关注数据库测试。在那个时候Richard Dalalaway写了一篇博文《数据库代码单元测试》,这就是DbUnit创作灵感来源。
从那时候开始,DbUnit变成了数据库测试的JAVA框架,它的开发也有所起伏。在一个高峰期之后(基本代码库已经创建好了),它面临了一段长时间的低落。幸运的是,很多新的开发者加入了,在这期间,这本书也写好了,几个新的版本已经发布,提供了很多改进,也修正了一些bug。
DbUnit有数百个类和接口。即使如此多类,DbUnit的使用大概就是从数据库获取数据和添加数据,这些数据使用dataset表示(更特别一点,它就是实现了dataset接口的类)。
下一节将看下dataset的基本使用和DbUnit其他的特性。
2.1 简单的应用程序
这一节主要是讲使用DbUnit测试JAVA应用程序的持久化层。为了方便,这层仅仅定义了一个接口,如下[Listing 1]所示:
[Listing 1]: DAO interface used in the examples
public interface UserDao {
long addUser(User user) throws SQLException;
User getUserById(long id) throws SQLException;
}
这个DAO接口(使用简单的JDBC)的实现没有写在这里,但是可以去本书的网站下载。User对象是一个简单的POJO, 如下[Listing 2]所示:
[Listing 2]: Domain model used in the examples
public class User {
private long id;
private String username;
private String firstName;
private String lastName;
// getters and setters omitted
}
User对象在数据库中对应users表,创建表的语句如下[Listing 3]所示:
[Listing 3]: SQL script that creates the users table
CREATE TABLE users (id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH
1), username VARCHAR(10), first_name VARCHAR(10), last_name VARCHAR(10) )
最后一点,本例讲使用HSQLDB数据库,因为它是基于JAVA的,不需要更多的配置。HSQLDB是非常灵活的,它可以作为客户端、嵌入式运行,使用硬盘或者内存。最简单最快的方式是使用内存嵌入式数据库,这也是本例所使用这种模式。
2.2 创建DbUnit运行这个简单的程序
DbUnit本身仅有一个jar,唯一需要的外部依赖就是logging框架-SLF4J(Sample Logging Facade for Java). SLF4J需要2个jar: slf4j-api.jar(它包含slf4j框架的接口)和slf4j-nop.jar(它不记录任何东西;更多的内容将在以后讨论)。DbUnit要去连接数据库,当然要添加JDBC驱动到classpath(在本例中它就是hsqldb.jar).
这个简单的程序可以使用两种“风格”,Maven 和 Ant.使用 Maven 运行的命令是 "maven clean test". 类似地,使用Ant运行的命令是"Ant clean test". 这个程序用两种Eclipse project的方式:一种使用必要的库,另外一种使用DbUnit工程本身。
分享到:
相关推荐
dbunit测试demo,具体可以结合博文https://i.cnblogs.com/EditPosts.aspx?postid=10653984
使用DbUnit测试数据库.pdf
1。利用MySql数据库建立一个测试的数据库student: 2.建立新的java工程,例如DBUnitSample, 将DbUnit jar文件和MySql数据库驱动文件导入到工程中: 3.编写连接MySql数据库的类以及用于测试的类
一个很好的DBUnit的例子 博文链接:https://virgoooos.iteye.com/blog/186859
Junit,dbunit单元测试jar包
DBUnit测试规范[收集].pdf
通过DBUNIT做批量对比测试
unitils整合dbunit利用excel进行单元测试 包含mock以及整合spring进行测试
单元测试入门学习,和dbunit结合开发
用于数据库测试的一个工具,具有很强的灵活性。也是自己在网上找的,分享一下
DbUnit是一款开源的数据库功能测试框架,使用它可以对数据库的基本操作进行白盒单元测试,对输入输出进行校验,从而保证数据的有效性。DbUnit使用XML文件提供测试数据,为测试人员增加了测试难度,降低了单元测试效率。...
专门针对数据库测试的对JUnit 的一个扩展,它可以将测试对象数据库置于一个测试轮回之间的状态。
NULL 博文链接:https://zhuliang1984723.iteye.com/blog/2056075
NULL 博文链接:https://xiongzhenhui.iteye.com/blog/802984
dbunit2.2完全包 数据库单元测试
用DbUnit进行SqlMap单元测试 摘自:http://www.uml.org.cn/Test/200811278.asp
DbUnit(http://dbunit.sourceforge.net/)则是专 门针对数据库测试的对JUnit的一个扩展, 它可以将测试对象数据库置于一个测试轮回之间的状态。 这个是主要jar包
采用 Java 编写的数据库系统单元测试程序。