基于DbUnit的单元测试
2018-03-05,本文 984 字,阅读全文约需 3 分钟
摘自此博客
使用spring-test-dbunit
- @DatabaseSetup
@DatabaseSetup(value = “classpath:com/and1/test/dao/mapper/deal/DealMqMessageMapperTest.setUp.xml”, connection = “h2DataSource”, type = DatabaseOperation.CLEAN_INSERT)
将特定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”?>
- @ExpectedDatabase :数据验证,其assertionMode属性支持两种验证方式
-
DatabaseAssertionMode.DEFAULT要验证所有的字段
-
DatabaseAssertionMode.NON_STRICT则支持只验证部分字段