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
分享到:
相关推荐
本示例主要聚焦于C++编程语言中的单元测试,我们将探讨如何进行白盒测试的基本实现方法和结构。 首先,我们需要理解什么是单元测试。单元测试是对软件中的最小可测试单元进行检查和验证的过程。对于C++,这可能是一...
在这个“junit单元测试示例”中,我们将深入探讨如何配置和执行一个基本的JUnit测试。 首先,我们需要了解Junit.jar。这是JUnit库的归档文件,包含了所有必要的类和接口,使得我们能够编写和运行测试用例。要将...
在IT领域,单元测试是一种软件开发过程中的关键实践,它涉及到对程序的最小可测试单元进行验证,确保每个部分都能按预期...因此,理解和分析"onnx-simplifier的单元测试示例和结果"对于优化和维护该工具具有重要意义。
《新建 Microsoft Word 文档.doc》可能包含了具体的单元测试示例或技巧,比如如何编写有效的测试用例,如何处理异步操作的测试,以及如何组织测试代码以保持可读性和可维护性。 《spring测试.rar》可能是一个包含更...
Junit4+Spring2.5单元测试代码示例同时也适用注解注入的形式测试(前提要导好测试的包哦,包MyEclipce自带了)
在"02-代码"这个压缩子文件中,你将找到8个不同的iOS单元测试示例。这些示例可能涵盖了各种测试场景,例如: 1. 测试基本的数据处理方法,如字符串操作、数组操作等。 2. 测试网络请求和数据解析,确保数据正确地被...
对于不可控的第三方接口、第三方服务以及不确定性的代码如何进行单元测试用例的编写提供思路。同时对如何编写可测试的程序提供一种思路。同时对如何编写可测试的程序提供一种思路。同时对如何编写可测试的程序提供一...
本示例工程将展示如何使用gooletest进行单元测试,特别适用于人工智能领域的项目,因为这些项目通常包含复杂的算法和逻辑,需要严谨的测试以确保其正确性。 首先,我们要了解gooletest的基本概念。gooletest框架...
基于Springboot+Junit+Mockito做单元测试的示例 本文将从多个角度详细介绍如何使用Springboot、Junit和Mockito进行单元测试,并以实例代码演示。以下是本文的知识点总结: 一、单元测试的重要性 单元测试是软件...
Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目
C/C++单元测试,全局函数的gtest的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《private函数如何单元测试》的随文示例demo,结合博文更易理解。
C/C++单元测试,全局函数的gtest的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《protected函数如何单元测试》的随文示例demo,结合博文更易理解。
"基于C# UI Automation自动化测试自动化测试示例工程" 是一个使用C#编程语言构建的项目,其核心目标是实现UI(用户界面)自动化测试。UI Automation是.NET Framework提供的一种用于测试Windows应用程序用户界面的...
下面是一个简单的示例,演示如何使用JUnit单元测试框架来测试一个类。在这个示例中,我们首先创建了一个名为Person的类,这个类包含两个方法:Save(String)和Add(int, int)。然后,我们创建了一个测试类PersonTest,...
unittest框架(单元测试)py代码示例+文字教程,当谈到单元测试时,unittest 是 Python 中最常用和最受欢迎的测试框架之一。 unittest 提供了一组用于编写和运行测试的类和方法,并且易于使用。unittest 提供了许多...
标签 "源码" 和 "工具" 提示我们,这篇内容可能包括了实际的代码示例以及可能使用的工具,如JUnit(一个流行的Java单元测试框架)和其他GWT特定的测试库。这些工具可能帮助开发者编写、组织和运行GWTTestcase,以...
C/C++单元测试,虚函数依赖函数的gtest+gmock的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《虚函数依赖如何单元测试》的随文示例demo,结合博文更易...
通过学习这些示例,开发者可以更好地理解和掌握如何在实际项目中实施单元测试。 总之,这个资源为WinForm开发者提供了一个使用NUnit进行单元测试的实际应用案例,帮助他们了解如何在传统的桌面应用中引入现代测试...
C/C++单元测试,非虚函数依赖得函数gtest+cppfreestub的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《非虚函数依赖如何单元测试》的随文示例demo,结合...