Unitils这个
Java
开源类包的目的是让单元测试变得更加容易和可维护。
Unitils
构建在
DBUnit
与
EasyMock
项目之上并与
JUnit
和
TestNG
相结合。支持数据库测试,支持利用
mock
对象进行测试并提供与
Spring
和
Hibernate
相集成。
Unitils
设计成 以一种高度可配置和松散偶合的方式来添加这些服务到单元测试中。
对于想学习使用此测试框架的同学可参看以下的一些资料:
单元测试:Unitils
的简单使用
http://www.open-open.com/lib/view/open1351682818848.html
Unitils 学习笔记
http://macrochen.iteye.com/blog/531445
单元测试系列之3
:测试整合之王
Unitils
http://stamen.iteye.com/blog/1480316
单元测试系列之4
:使用
Unitils
测试
DAO
层
http://stamen.iteye.com/blog/1484589
单元测试系列之5
:使用
unitils
测试
Service
层
http://stamen.iteye.com/blog/1485837
这些资料都对Unitils
的原理和使用方式都进行了详细的介绍,但对于象我这样第一次接触
Unitils
,
DBUnit
,
EasyMock
这些东西的人显得有些复杂了。希望通过一个可运行的示例程序将这些内容串起来,好有一个直观的了解。
在网上搜索了一下,找到一个老外写的Unitils
示例应用。模拟了一个人力资源应用程序,为某一职位的雇员设置基准工资。系统分为业务层和数据访问层,使用
Ebean
做
ORM
操作
HsqlDB
数据库。原文地址:
http://www.devx.com/Java/Article/35129
将工程下来后发现运行不了,原来此工程是2007
年写的使用的包的方法比较旧。只好自己动手改造一下。
DAO层
-
public
List<Employee> findEmployeesByTitle(String title)
throws
DataAccessException {
-
if
(title ==
null
)
-
throw
new
IllegalArgumentException(
"Job title cannot be null."
);
-
-
List<Employee> result;
-
try
{
-
result = Ebean.find(Employee.class
).where().eq(
"title"
, title).findList();
-
} catch
(Throwable e) {
-
throw
new
DataAccessException(e);
-
}
-
-
return
result;
-
}
unitils配置
-
unitils.modules=database,dbunit,easymock,inject
-
-
unitils.module.hibernate.enabled=false
-
unitils.module.spring.enabled=false
-
-
# these placeholders are set in avaje.properties
-
database.driverClassName=org.hsqldb.jdbcDriver
-
database.url=jdbc:hsqldb:mem:unitils-example
-
database.userName=sa
-
database.password=
-
-
database.schemaNames=PUBLIC
-
database.dialect=hsqldb
-
-
updateDataBaseSchema.enabled=true
-
-
# unitils will construct the test database using the ddl file found in this
-
# directory
-
dbMaintainer.autoCreateExecutedScriptsTable=true //自动创建脚本,否则报错
-
dbMaintainer.script.locations=src/main/resources //ddl文件路径与原来不同
-
-
dataSetStructureGenerator.xsd.dirName=src/test/resources/dataset-schema
-
sequenceUpdater.sequencevalue.lowestacceptable=100
整个工程很简单,有兴趣的同学可以通过这个地址http://download.csdn.net/detail/peterwanghao/4937035
下载。
在此过程中遇到了一些问题:
org.dbunit.dataset.NoSuchTableException 解决方法是SCHEMA的名字必须是大写。 http://linkyou.blog.51cto.com/1332494/283201
org.dbunit.dataset.NoSuchColumnException 解决方法是使用Unitils 3.3默认依赖的dbunit 2.2.2版本或者修改dbunit的DefaultMetadataHandler.java文件。http://zfanxu.iteye.com/blog/1508339
分享到:
相关推荐
软件测试_iOS自动化单元测试示例
Android单元测试的小例子
onnx-simplifier的单元测试示例和结果
简单的实现了我们平常进行白盒测试的基本实现方法以及结构,希望对你有帮助。
在项目中把junit.jar配置到构建路径,创建实体类Hello,测试类TestCase,测试方法test1。右键运行junit。
主要内容: 软件测试基本理论 单元测试基本理论 为什么要进行单元测试 C/C++单元测试问答 单元测试工具 如何实施单元测试 所有内容来源于网上学习整理,仅供参考。欢迎多多交流。
android单元测试和UI测试示例代码
Junit4+Spring2.5单元测试代码示例同时也适用注解注入的形式测试(前提要导好测试的包哦,包MyEclipce自带了)
单元测试培训资料 Xunit系列示例 单元测试基础培训
对于不可控的第三方接口、第三方服务以及不确定性的代码如何进行单元测试用例的编写提供思路。同时对如何编写可测试的程序提供一种思路。同时对如何编写可测试的程序提供一种思路。同时对如何编写可测试的程序提供一...
java-jacoco-单元测试覆盖-示例项目
单元测试框架Unitils例子工程,集成了DBUnit,EasyMock.
上一篇文章已经介绍了单元测试的作用和简单示例,如果不了解的读者可以先阅读上一篇[ Android单元测试-作用以及简单示例](http://blog.csdn.net/double2hao/article/details/77159380)。 这篇文章主要介绍常见的...
android不用另建工程进行单元测试及改变测试方法执行顺序示例代码
gooletest 单元测试的示例工程
Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目
今天小编就为大家分享一篇关于SpringBoot Controller Post接口单元测试示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
unittest框架(单元测试)py代码示例+文字教程,当谈到单元测试时,unittest 是 Python 中最常用和最受欢迎的测试框架之一。 unittest 提供了一组用于编写和运行测试的类和方法,并且易于使用。unittest 提供了许多...
Apache JMeter测试示例脚本
用Eclipse进行软件单元测试,具体步骤和示例。