Unitils-Spring测试总体流程
一、在工程中配置Unitils测试环境
1.unitils-local.properties
####################################
# Default configuration of Unitils #
####################################
unitils.module.spring.className=org.unitils.spring.SpringModule
unitils.module.spring.runAfter=database
unitils.module.spring.enabled=true
database.userName=sa
database.password=
database.schemaNames=public
2.unitils.properties
unitils.modules=database,dbunit,hibernate,spring,
#unitils.module.dbunit.className=sample.unitils.module.CustomExtModule
#database
database.driverClassName=org.hsqldb.jdbcDriver
database.url=jdbc:hsqldb:data/sampledb16;shutdown=true
database.dialect = hsqldb
database.userName=sa
# The database maintainer is disabled by default.
updateDataBaseSchema.enabled=true
#This table is by default not created automatically
dbMaintainer.autoCreateExecutedScriptsTable=true
dbMaintainer.script.locations=D:/masterSpring/chapter16/resources/dbscripts
DbUnitModule.DataSet.factory.default=sample.unitils.dataset.excel.MultiSchemaXlsDataSetFactory
DbUnitModule.ExpectedDataSet.factory.default=sample.unitils.dataset.excel.MultiSchemaXlsDataSetFactory
DbUnitModule.DataSet.loadStrategy.default=org.unitils.dbunit.datasetloadstrategy.impl.CleanInsertLoadStrategy
DatabaseModule.Transactional.value.default=commit
# XSD generator
dataSetStructureGenerator.xsd.dirName=resources/xsd
二、创建测试类
通过继承 UnitilsJunit4类来创建测试类,注意测试类需要做以下工作:
Step1:加载Spring配置文件
@SpringApplicationContext({"baobao-service.xml","babao-dao.xml"})
Step2:加载Spring容器中的Bean
@SrpingBean("userService")
private UserService userService;
Step3:创建类初始化方法
使用@BeforeClass进行类级的数据初始化
Step4:准备测试使用的资源(可跳过)TODO:这段需要细化
使用Mock来生成相应的类
Step5:创建测试方法初始化方法
使用@Before标记每一次测试方法运行前要执行的方法。
Step6:创建测试方法
在Unitils中,测试方法使用@Test来标识,创建测试方法时,我们要按以下的顺序来完成测试流程:
- 初始化数据库表
使用@DataSet("Baobao.User.xls")注释来准备测试数据,这些数据会被Unitils根据数据初始化策略,加载入数据库
- 准备验证数据
使用@ExpectedDataSet("Baobao.ExpectedSavedUser.xls"),当测试完成后,会使用excel中的数据对数据库进行验证
- 从Excel中加载测试数据进行
User u = XlsDataSetBeanFactory.createBean("Baobao.SaveUser.xls","t_user",User.class);
Step7:清理数据
使用@After标记每一次测试方法运行后要运行的方法,@AfterClass标识类执行完前要执行的方法
浙公网安备 33010602011771号