测试时使用save()方法向数据库插入一条记录,结果发现通过单元测试了,但是并没有向数据库插入一条记录,一看日志,发现Spring-test对事务进行了回滚。
为了使测试数据不对数据库造成污染,在使用Spring-test进行的单元测试的时候,默认会对事务进行回滚,即@Rollback
默认是true,如果想要测试数据不回滚,可设置@Rollback(value = false)
。如果是使用MySQL数据库,在设置了自动回滚之后,如果发现事务依然没有回滚,那么可以查看一下数据库引擎是否是Innodb
,因为其他的数据库引擎如MyISAM
、Memory
都不支持事务。
Spring-test事务自动回滚
最新推荐文章于 2024-05-14 20:04:15 发布