随笔 - 23  文章 - 11  trackbacks - 0
<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

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注入。
posted on 2008-04-07 00:45 小小~咖啡豆 阅读(2785) 评论(2)  编辑  收藏 所属分类: 测试

FeedBack:
# re: Unitils开发指南(二) 2008-08-21 14:56 learnsea
写的不错,相当的好!!继续  回复  更多评论
  
# re: Unitils开发指南(二) 2008-10-07 18:19 crane.ding
还得配 database.dialect 值:'oracle', 'db2', 'mysql', or 'hsqldb'等等
例如:1.database.dialect = oracle
2.database.dialect = mysql
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: