解决Springboot使用Junit测试时对数据库的修改无效

现象

在使用Junit做单元测试的过程中,比如对mybatis的dao进行单元测试,发现对数据库的select操作正常,可以获取数据,但insert、update、delete操作即使运行不报错,仍然不能不能对数据产生修改和插入。

原因和解决

原因:

执行成功了,但是被Junit又回滚了

在对数据库的操作进行单侧时,考虑到测试的脏数据会影响数据库,因为springboot中使用junit编写单元测试默认是事物回滚的。因此,即实际上是执行了对应的插入操作,但是完成操作后执行了事务回滚操作,从而看起来数据库中没有对应数据,好像变更操作没有发生一样。

解决:

使用如下注解关闭事务的自动回滚,添加在测试类或者方法上面。

@Rollback(false)

你可能感兴趣的:(spring,boot,junit)