Unitils使用(转载)

转自:http://www.blogjava.net/wangzhouyu/archive/2008/04/07/191137.html

 

Unitils模块

配置

和大多数的项目一样,unitils也需要一些配置,默认情况下有3个配置,每个配置都覆写前一个的配置

  1. unitils-default.properties 默认的配置,在unitils发行包中。
  2. unitils.properties 可包含项目的全部配置
  3. unitils-local.properties 可以包含用户特定配置

第一个配置文件unitils-default.properties,它包含了缺省值并被包含在unitils的发行包中。我们没有必要对这个文件进行修改,但它可以用来作参考。

第二个配置文件unitils.properties,它是我们需要进行配置的文件,并且能覆写缺省的配置。举个例子,如果你的项目使用的是 oracle数据库,你可以创建一个unitils.properties文件并覆写相应的driver class和database url。

database.driverClassName=oracle.jdbc.driver.OracleDriver
database.url=jdbc:oracle:thin:@yourmachine:1521:YOUR_DB

这个文件并不是必须的,但是一旦你创建了一个,你就需要将该文件放置在项目的classpath下

最后一个文件,unitils-local.properties是可选的配置文件,它可以覆写项目的配置,用来定义开发者的具体设置,举个例子来 说,如果每个开发者都使用自己的数据库schema,你就可以创建一个unitils-local.properties为每个用户配置自己的数据库账 号、密码和schema。

database.userName=john
database.password=secret
database.schemaNames=test_john

每个unitils-local.properties文件应该放置在对应的用户文件夹中(System.getProperty("user.home"))。

本地文件名unitils-local.properties也可以通过配置文件定义,在unitils.properties覆写unitils.configuration.localFileName就可以。

unitils.configuration.localFileName=projectTwo-local.properties

启用你的unitils

unitils的功能是依赖于基础的测试框架,要使用unitils的功能,就必须先enable他们,这样做的目的也是为了容易扩展。目前支持的框架有:

  1. JUnit3 :org.unitils.UnitilsJUnit3
  2. JUnit4 :org.unitils.UnitilsJUnit4
  3. TestNG:org.unitils.UnitilsTestNG

举个例子,如果使用JUnit3,你要使用unitils

import org.unitils.UnitilsJUnit3;
public class MyTest extends UnitilsJUnit3 {
}

通常你将创建你自己的包含一些公共行为的测试基类,如dataSource的注入,你可以让这个基类继承unitils测试类。

当你使用的是JUnit4的话,你也可是使用@RunWith来代替继承unitils测试类

import org.junit.runner.RunWith;
import org.unitils.UnitilsJUnit4TestClassRunner;
@RunWith(UnitilsJUnit4TestClassRunner.class)
public class MyTest {
}

模块系统

在开始举例之前,让我们先了解一下unitils概念。

unitils的结构被设计成了十分容易扩展,每个模块提供了一种服务,当执行Test的时候通过TestListener调用相应的服务。

image

这种设计采用了一个统一的方式提供服务,如果你需要加入其他的服务,无需去改编测试基类(UnitilsJUnit4这些类)。要加入新的服务只需要添加一个新的模块并在unitls配置文件中登记这个模块。

目前unitils中所有有效的模块如下:

  1. DatabaseModule 数据库单元测试的维护和连接池。
  2. DbUnitModule 使用DBUnit来管理测试数据。
  3. hibernatemodule 支持Hibernate的配置和自动数据库映射检查。
  4. EasyMockModule 支持创建mock和宽松的反射参数匹配。
  5. InjectModule 支持在一个对象中注入另一个对象。
  6. SpringModule 支持加载spring的上下文配置,并检索和Spring Bean注入。
原文地址:https://www.cnblogs.com/shine_cn/p/2473743.html