除去Junit4原本执行方法顺序,Unitils的runner继承了Junit4 的runner并改写,在原有基础上加入了融入自己的执行方法顺序,这些新增加的自定义方法写在了一个名为TestListener的抽象类中。UnitilsTestListener继承了此TestListener并改写了这些方法,如执行UnitilsTestListener 的beforeTestClass方法时,Unitils会通过读取配置的module依次遍历每个module的 TestListener并执行TestListener里的beforeTestClass方法。如下图所示:
因此,便形成了Unitils如下的组件体系:
Unitils默认提供了如下组件:
1)DatabaseModule 数据库单元测试的维护和连接池。
2)DbUnitModule 使用DBUnit来管理测试数据。
3)Hibernatemodule 支持Hibernate的配置和自动数据库映射检查。
4)EasyMockModule 支持创建mock和宽松的反射参数匹配。
5)InjectModule 支持在一个对象中注入另一个对象。
6)SpringModule 支持加载spring的上下文配置,并检索和Spring Bean注入。
这些组件都是通过Unitils的默认配置文件定义加载的。
3,Unitils配置文件
unitils-default.properties
默认的配置,它包含了缺省值并被包含在unitils的发行包中;
unitils.properties
可包含项目的全部配置;
unitils-local.properties
可以包含用户特定配置;
unitils-default.properties配置文件包含配置内容基本如下:
这里的配置定义了一般配置文件的名字unitils.properties和用户自定义配置文件unitils-local.properties,并给出了默认的模块及模块对应的className,便于Unitils加载对应的模块module。但是如果用户在unitils.properties文件中定义了相应的不同配置,将会以unitils.properties配置内容为主。