Unitils是单元测试的一组工具集,介绍见http://www.iteye.com/topic/160004
Dbdeploy是Thoughtworks公司开发的数据库工具,获得Jolt大奖。
Unitils有自己的一个管理类似于dbdeploy的管理数据库的module -- DBMaintainer,其要求的sql文件名称格式如下所示,要求使用下划线分隔
001_create_users_table.sql
Dbdeploy要求的sql文件格式使用空格分隔
1 create users table.sql
如果在项目中同时使用了dbdeploy和unitils(dbdeploy比dbmaintainer更强大,同时支持undo),由于两种格式不匹配,就需要维护两套sql文件,比较麻烦。目前在dbdeploy中没有发现可以配置文件名的方法,只能从unitils入手,查看unitils的文档找到解决方法。
使用unitils时可以自定义ScriptSource(获取sql file source的一个接口),在unitils.properties中加入
org.unitils.dbmaintainer.script.ScriptSource.implClassName=com.andyao.unitils.DbDeployScriptSource
DbDeployScriptSource为
public class DbDeployScriptSource extends FileScriptSource {
public static final String SEPARATOR = " ";
/**
* Indicates if the given file is regarded as a script file
*
* @param file The file
* @param scriptFileSpecification Specification describing the files that can be regarded as a script file
* @return True if the given file is regarded as a script file.
*/
@Override
protected boolean isScriptFile(File file, ScriptFilesSpecification scriptFileSpecification) {
String name = file.getName();
boolean fileExtensionSupported = false;
for (String fileExtension : scriptFileSpecification.getFileExtensions()) {
if (name.endsWith(fileExtension)) {
fileExtensionSupported = true;
break;
}
}
if (!fileExtensionSupported) {
return false;
}
if (scriptFileSpecification.isExcludeFilesWithoutIndex()) {
if (!StringUtils.contains(name, SEPARATOR)) {
return false;
}
String indexNrStr = StringUtils.substringBefore(name, SEPARATOR);
if (!StringUtils.isNumeric(indexNrStr)) {
return false;
}
}
return true;
}
/**
* Returns the version index of the given script file
*
* @param scriptFile The file containing a script
* @return The version of the script file
*/
@Override
protected Long getIndex(File scriptFile) {
if (StringUtils.contains(scriptFile.getName(), SEPARATOR)) {
try {
return new Long(StringUtils.substringBefore(scriptFile.getName(), SEPARATOR));
} catch (NumberFormatException e) {
return -1L;
}
} else {
return -1L;
}
}
}
这样就可以同时使用dbdeploy和unitils,做到自动化维护测试数据库。
分享到:
相关推荐
此类可能包含方法来初始化数据集、执行数据库操作、比较数据集等,简化了使用Unitils进行数据库测试的流程。 5. **源码解析**: 分析DBUnitUtils类的源码可以帮助我们理解作者是如何结合Unitils与DBUnit进行DAO...
该框架基于DbUnit和EasyMock,并与JUnit和TestNG兼容,提供了对数据库测试、Mock对象管理和Spring集成的支持。 在数据库测试方面,Unitils能够自动维护和关闭单元测试数据库,支持多种数据库平台如Oracle、Hsqldb、...
在数据库测试方面,Unitils提供了自动化管理数据库和数据的能力,这样开发者就可以专注于编写测试逻辑,而无需过多关注设置和清理数据库的状态。 1. **数据库连接与配置**:Unitils允许开发者通过配置文件轻松地...
Unitils 提供了一些实用的工具和方法来帮助我们编写数据库测试。 例如,我们可以使用 Unitils 的 DatabaseModule 来测试数据库操作。DatabaseModule 提供了一些实用的方法来操作数据库,例如创建、删除和更新数据库...
它支持 JUnit 和 TestNG,提供了多种测试模块,如数据库测试、ORM 支持(如 Hibernate 和 iBatis)、模拟对象等。在本示例中,我们看到 Unitils 被用来处理与数据库相关的测试和对象模拟。 2. **DBUnit 集成** ...
Unitils 测试框架目的是让单元测试变得更加容易和可...支持数据库测试,支持利用Mock 对象 进行测试并提供与Spring 和Hibernate 相集成。Unitils 设计成以一种高度可配置和松散耦 合的方式来添加这些服务到单元测试中
- `unitils-jdbc.jar`:数据库测试支持模块。 - `unitils-mock.jar`:模拟对象模块。 - `unitils-orm.jar`:ORM测试支持模块。 - `unitils-testng.jar`或`unitils-junit.jar`:针对TestNG或JUnit的适配器。 - `lib/`...
对于数据库测试,它支持自动配置数据库连接,以及在测试前后自动清理数据,避免了测试间的干扰。此外,它还提供了事务管理功能,可以在测试完成后回滚所有的数据库更改,保持数据一致性。 对于Spring框架的支持,...
Unitils与DBUtils的结合使用,进一步增强了数据库测试的能力。DBUtils是Apache的一个开源项目,提供了一套简单实用的数据库操作API,包括连接池管理、SQL执行等基础功能。在测试中,DBUtils可以辅助Unitils执行...
例如,JUnit用于编写测试用例,DBUnit负责数据库相关的测试,Unitils提供ORM支持和进一步的测试便利,而Mockito则用来模拟复杂的依赖关系,使得测试更加独立和可控。了解和熟练使用这些工具,对于提升软件开发效率和...
Dbunit支持多种数据库管理系统,如MySQL、Oracle、DB2等。 四、Dbunit配置文件 在使用dbunit之前,需要在pom.xml文件中添加相关的依赖项,包括unitils-core、unitils-dbunit、unitils-io、unitils-database和...
unitils整合dbunit利用excel进行单元测试 包含mock以及整合spring进行测试
Unitils构建在DBUnit与EasyMock项目之上并与JUnit和TestNG相结合,支持数据库测试,支持利用mock对象进行测试并提供与Spring和Hibernate相集成。Unitils设计成以一种高度可配置和松散偶合的框架来添加这些服务到单元...
对于复杂的接口测试场景,Unitils 可以简化对象初始化、数据库操作等任务。 ##### 5.5 TestNG TestNG 是一个用于 Java 的测试框架,它提供了丰富的功能集,如并行测试执行、参数化测试等。对于接口测试而言,TestNG...
此外,Unitils还支持数据库测试,这意味着开发者可以在不依赖实际数据库环境的情况下,测试与数据库交互的代码段。它允许创建测试专用的数据库配置,执行测试中的SQL脚本,以及在测试结束时清理测试数据。这样的能力...
Unitils-core-3.3的jar包
标题 "spock-unitils-0.7-groovy-2.0.zip" 暗示这是一个软件库,可能是一个测试框架或工具,结合了Spock、Unitils和Groovy技术。Spock是一个基于JVM的BDD(行为驱动开发)框架,主要针对Groovy和Java语言,提供了一...