对dbunit进行mybatis DAO层Excel单元测试(必看篇)

  

  

可重复性,每次运行单元测试,得到的数据是重复的

  

独立性,测试数据与实际数据相互独立

  

数据库中脏数据预处理

  

不能给数据库中数据带来变化

  

  

使用内存数据库,如H2。优点:无需清空无关数据,缺点:单元测试中需要进行数据库初始化过程,如果初始化过程复杂,单元测试工作量增大

  

使用dbunit。优点:数据库初始化简单,大大减轻单元测试工作量;缺点:目前官方提供jar包只支持xml格式文件,需要自己开发Excel格式文件

  

  

应用环境:春天,Mybatis, MySql, Excel

  

  

<强> 1。pom.xml

  

引入jar包,至今还整合了dbunit,数据库,春天,io等模块

        & lt; dependency>   & lt; groupId> org.unitils   & lt; artifactId> unitils-core   & lt; version> 3.4.2   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.unitils   & lt; artifactId> unitils-dbunit   & lt; version> 3.4.2   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.unitils   & lt; artifactId> unitils-io   & lt; version> 3.4.2   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.unitils   & lt; artifactId> unitils-database   & lt; version> 3.4.2   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.unitils   & lt; artifactId> unitils-spring   & lt; version> 3.4.2   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.dbunit   & lt; artifactId> dbunit   & lt; version> 2.5.3   & lt;/dependency>      

配置maven对resourcew文件过滤规则,如果不过滤maven会对资源文件重编码,导致Excel文件被破坏

        & lt; resources>   & lt; resource>   & lt; directory> src/测试/resources   & lt; includes>   & lt; include> * */* * & lt;/include>   & lt;/includes>   & lt; filtering> false   & lt;/resource>   & lt;/resources>      

<强> 2。至今。属性
  

  

在测试源码根目录中创建一个项目级别的unitils.properties配置文件,主要用于配置自定义拓展模块,数据加载等相关信息

        #启用至今所需模块   dbunit unitils.modules=数据库      #自定义扩展模块,加载Excel文件,默认拓展模块org.unitils.dbunit.DbUnitModule支持xml   unitils.module.dbunit.className=org.agoura.myunit.module.MyDbUnitModule      #配置数据库连接   database.driverClassName=com.mysql.jdbc.Driver   database.url=jdbc: mysql://127.0.0.1:3306/团队# 63;autoReconnect=true&音箱;useUnicode=true&音箱;characterEncoding=utf - 8   database.userName=根   database.password=奥格拉   #配置为数据库名称   database.schemaNames=团队   #配置数据库方言   database.dialect=mysql      #需设置假,否则我们的测试函数只有在执行完函数体后,才将数据插入的数据表中   unitils.module.database.runAfter=false      #配置数据库维护策略。请注意下面这段描述   #如果设置为true, DBMaintainer将用于更新单元测试数据库模式。这是做>   & lt; & # 63; xml version=" 1.0 " encoding=" GBK " & # 63;比;   & lt;豆类xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   xmlns:上下文=" http://www.springframework.org/schema/context "   xmlns=" http://www.springframework.org/schema/beans "   xsi: schemaLocation=" http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.1.xsd   http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-3.1.xsd”比;      & lt;上下文:component-scan基础包=" com.agoura.agoura "/比;      & lt;上下文:property-placeholder位置="类路径:jdbc_dbcp.properties”/比;   & lt; !——& lt; util:属性id=" jdbc_dbcp "/祝辞——比;      & lt; bean id=笆菰础崩?皁rg.unitils.database.UnitilsDataSourceFactoryBean”/比;      & lt; !——春天和MyBatis整合,不需要MyBatis的配置映射文件——比;   & lt; bean id=皊qlSessionFactory”类=皁rg.mybatis.spring.SqlSessionFactoryBean”比;   & lt;属性名=笆菰础眗ef=笆菰础?比;   & lt; !——自动扫描映射。xml文件——比;   & lt;属性名=" mapperLocations " value=" https://www.yisu.com/zixun/classpath *:com/agoura/agoura/mapper/xml/* . xml”祝辞& lt;/property>   & lt;/bean>      & lt; !——刀接口所在包名,春天会自动查找其下的类——比;   & lt; bean类=皁rg.mybatis.spring.mapper.MapperScannerConfigurer”比;   & lt;属性名=" basePackage " value=" https://www.yisu.com/zixun/com.agoura.agoura.mapper "/比;   & lt;属性名=" sqlSessionFactoryBeanName " value=" https://www.yisu.com/zixun/sqlSessionFactory "祝辞& lt;/property>   & lt;/bean>      & lt; !——(事务管理)事务管理器,使用全球tx JtaTransactionManager——比;   & lt; bean id=" transactionManager "   类=皁rg.springframework.jdbc.datasource.DataSourceTransactionManager”比;   & lt;属性名=笆菰础眗ef=笆菰础?比;   & lt;/bean>   & lt;/beans>

对dbunit进行mybatis DAO层Excel单元测试(必看篇)