基于DbUnit的单元测试

摘自此博客

使用spring-test-dbunit

将特定xml文件中的数据同步到数据库,这个注解可以放在整个测试类上或者单个测试方法上,如果放在类上,则对所有方法都有效

属性:

value:数据集文件,测试执行之前设置数据库初始状态的数据集(DataSet)文件,是标准的DbUnit XML文件

connection:指定数据源,必须是@DbUnitConfiguration中配置的数据源,如果不指定,默认是@DbUnitConfiguration配置的第一个数据源。Spring-test-dbunit 1.2.0之后才支持。

type:对数据库的操作类型,如果不设置默认是DatabaseOperation.CLEAN_INSERT。

//将数据集中的内容更新到数据库中。它假设数据库中已经有对应的记录,否则将失败。  
UPDATE,  
//将数据集中的内容插入到数据库中。它假设数据库中没有对应的记录,否则将失败。  
INSERT,  
//将数据集中的内容刷新到数据库中。如果数据库有对应的记录,则更新,没有则插入。  
REFRESH,  
//删除数据库中与数据集对应的记录。  
DELETE,  
//删除表中所有的记录,如果没有对应的表,则不受影响。  
DELETE_ALL,  
//与DELETE_ALL类似,更轻量级,不能rollback。  
TRUNCATE_TABLE,  
//是一个组合操作,是DELETE_ALL和INSERT的组合  
CLEAN_INSERT;  

DealMqMessageMapperTest.setUp.xml

<?xml version=”1.0” encoding=”UTF-8”?>

  1. DatabaseAssertionMode.DEFAULT要验证所有的字段

  2. DatabaseAssertionMode.NON_STRICT则支持只验证部分字段

Blog

Dump

Project