`
peterwanghao
  • 浏览: 128088 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Unitils单元测试示例

阅读更多

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层

 

[java] view plain copy
  1. public  List<Employee> findEmployeesByTitle(String title)  throws  DataAccessException {  
  2.         if  (title ==  null )  
  3.             throw   new  IllegalArgumentException( "Job title cannot be null." );  
  4.   
  5.         List<Employee> result;  
  6.         try  {  
  7.             result = Ebean.find(Employee.class ).where().eq( "title" , title).findList();  
  8.         } catch  (Throwable e) {  
  9.             throw   new  DataAccessException(e);  
  10.         }  
  11.   
  12.         return  result;  
  13.     }  


unitils配置

 

[plain] view plain copy
  1. unitils.modules=database,dbunit,easymock,inject  
  2.   
  3. unitils.module.hibernate.enabled=false  
  4. unitils.module.spring.enabled=false  
  5.   
  6. # these placeholders are set in avaje.properties  
  7. database.driverClassName=org.hsqldb.jdbcDriver  
  8. database.url=jdbc:hsqldb:mem:unitils-example  
  9. database.userName=sa  
  10. database.password=  
  11.   
  12. database.schemaNames=PUBLIC  
  13. database.dialect=hsqldb  
  14.   
  15. updateDataBaseSchema.enabled=true  
  16.   
  17. # unitils will construct the test database using the ddl file found in this  
  18. # directory  
  19. dbMaintainer.autoCreateExecutedScriptsTable=true //自动创建脚本,否则报错  
  20. dbMaintainer.script.locations=src/main/resources //ddl文件路径与原来不同  
  21.   
  22. dataSetStructureGenerator.xsd.dirName=src/test/resources/dataset-schema  
  23. 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

0
4
分享到:
评论

相关推荐

    C++单元测试简单示例

    本示例主要聚焦于C++编程语言中的单元测试,我们将探讨如何进行白盒测试的基本实现方法和结构。 首先,我们需要理解什么是单元测试。单元测试是对软件中的最小可测试单元进行检查和验证的过程。对于C++,这可能是一...

    junit单元测试示例

    在这个“junit单元测试示例”中,我们将深入探讨如何配置和执行一个基本的JUnit测试。 首先,我们需要了解Junit.jar。这是JUnit库的归档文件,包含了所有必要的类和接口,使得我们能够编写和运行测试用例。要将...

    java-jacoco-单元测试覆盖-示例项目

    总的来说,“java-jacoco-单元测试覆盖-示例项目”是一个实用的实践案例,它演示了如何在Java项目中集成JaCoCo进行单元测试覆盖率的计算和分析,对于初学者和开发者来说都是一个很好的学习资源。通过深入理解和运用...

    单元测试 Vector Cast Train资料

    在软件开发领域,尤其是汽车电子软件的开发过程中,单元测试是一项至关重要的质量保证步骤。单元测试是对软件中的最小可测试单元进行检查,通常是函数、方法或类,以确保它们按照预期工作。它有助于早期发现和修复...

    Junit4+Spring2.5单元测试代码示例(也适用注解测试)

    Junit4+Spring2.5单元测试代码示例同时也适用注解注入的形式测试(前提要导好测试的包哦,包MyEclipce自带了)

    Struts2SpringUnitDemo单元测试

    Struts2SpringUnitDemo是一个示例项目,展示了如何在Java应用程序中将Struts2和Spring框架进行集成,并进行单元测试。这两个框架都是Java Web开发中的关键组件,Struts2负责控制层逻辑,Spring则提供了全面的依赖...

    iOS单元测试大礼包

    在"02-代码"这个压缩子文件中,你将找到8个不同的iOS单元测试示例。这些示例可能涵盖了各种测试场景,例如: 1. 测试基本的数据处理方法,如字符串操作、数组操作等。 2. 测试网络请求和数据解析,确保数据正确地被...

    gooletest 单元测试的示例工程

    本示例工程将展示如何使用gooletest进行单元测试,特别适用于人工智能领域的项目,因为这些项目通常包含复杂的算法和逻辑,需要严谨的测试以确保其正确性。 首先,我们要了解gooletest的基本概念。gooletest框架...

    基于Springboot+Junit+Mockito做单元测试的示例

    基于Springboot+Junit+Mockito做单元测试的示例 本文将从多个角度详细介绍如何使用Springboot、Junit和Mockito进行单元测试,并以实例代码演示。以下是本文的知识点总结: 一、单元测试的重要性 单元测试是软件...

    Java 单元测试 JUnit 5 快速上手 示例项目

    Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目Java 单元测试 JUnit 5 快速上手 示例项目

    Linux下开箱即用的C++单元测试demo示例,protected成员函数单元测试

    C/C++单元测试,全局函数的gtest的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《protected函数如何单元测试》的随文示例demo,结合博文更易理解。

    基于C#UI Automation自动化测试自动化测试示例工程

    "基于C# UI Automation自动化测试自动化测试示例工程" 是一个使用C#编程语言构建的项目,其核心目标是实现UI(用户界面)自动化测试。UI Automation是.NET Framework提供的一种用于测试Windows应用程序用户界面的...

    在java中使用 junit单元测试

    下面是一个简单的示例,演示如何使用JUnit单元测试框架来测试一个类。在这个示例中,我们首先创建了一个名为Person的类,这个类包含两个方法:Save(String)和Add(int, int)。然后,我们创建了一个测试类PersonTest,...

    unittest框架(单元测试)py代码示例+文字教程

    unittest框架(单元测试)py代码示例+文字教程,当谈到单元测试时,unittest 是 Python 中最常用和最受欢迎的测试框架之一。 unittest 提供了一组用于编写和运行测试的类和方法,并且易于使用。unittest 提供了许多...

    GWTTestcase的单元测试

    标签 "源码" 和 "工具" 提示我们,这篇内容可能包括了实际的代码示例以及可能使用的工具,如JUnit(一个流行的Java单元测试框架)和其他GWT特定的测试库。这些工具可能帮助开发者编写、组织和运行GWTTestcase,以...

    Linux下开箱即用的C++单元测试demo示例,MOCK虚函数依赖的单元测试

    C/C++单元测试,虚函数依赖函数的gtest+gmock的demo示例,Linux下开箱即用。 整个工程带有完整的依赖,开箱即用。合适尝新的工程师入门体验~ 该资源是博文《虚函数依赖如何单元测试》的随文示例demo,结合博文更易...

    JUnit单元测试Java代码示例之账户管理测试

    JUnit单元测试Java代码示例之账户管理测试

    android不用另建工程进行单元测试及改变测试方法执行顺序示例代码

    本示例代码旨在介绍如何在不另建工程的情况下进行单元测试,并且如何控制测试方法的执行顺序。 首先,我们需要了解Android的单元测试框架JUnit和Mockito。JUnit是一个广泛使用的Java测试框架,它允许我们定义测试类...

    PHP使用phpunit进行单元测试示例

    本文将深入探讨如何在PHP环境中使用phpunit工具进行单元测试,结合具体示例来分析phpunit的安装过程以及如何编写和执行单元测试。 首先,phpunit是一个由Sebastian Bergmann创建的流行的PHP单元测试框架,它遵循...

    C++单元测试、压力测试、快速测试工具

    回到提供的压缩包文件"UnitTest Framework Sample(2016-07)",这个文件很可能包含了一些使用特定单元测试框架(可能是gtest或Catch2)编写的示例代码。这些示例可能涵盖了如何创建测试用例、编写断言、设置测试 ...

Global site tag (gtag.js) - Google Analytics