现象
在使用Junit做单元测试的过程中,比如对mybatis的dao进行单元测试,发现对数据库的select操作正常,可以获取数据,但insert、update、delete操作即使运行不报错,仍然不能不能对数据产生修改和插入。
原因和解决
原因:
执行成功了,但是被Junit又回滚了
在对数据库的操作进行单侧时,考虑到测试的脏数据会影响数据库,因为springboot中使用junit编写单元测试默认是事物回滚的。因此,即实际上是执行了对应的插入操作,但是完成操作后执行了事务回滚操作,从而看起来数据库中没有对应数据,好像变更操作没有发生一样。
解决:
使用如下注解关闭事务的自动回滚,添加在测试类或者方法上面。
@Rollback(false)