SpringBoot实现单元测试时回滚事务

Posted King-D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot实现单元测试时回滚事务相关的知识,希望对你有一定的参考价值。

pringBoot跑个单元测试只需要在测试类加两个注解就行了。

@RunWith(SpringRunner.class)
@SpringBootTest

然而这样的单元测试默认是提交事务的,一般的场景下都是要对事务进行回滚的。要支持回滚,只需要增加一个@Transactional注解即可。

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional

单独的@Transactional是回滚事务,在添加@Transactional的情况下如果要提交事务,只需要增加@Rollback(false):

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
@Rollback(false)

由于@Rollback可以用在方法上,所以一个测试类中,我们可以实现部分测试方法用@Rollback回滚事务,部分测试方法用@Rollback(false)来提交事务。

以上是关于SpringBoot实现单元测试时回滚事务的主要内容,如果未能解决你的问题,请参考以下文章

外部事务失败时回滚内部事务

Spring Data:重试时回滚事务

Spring Data:重试时回滚事务

Spring boot,测试后事务不回滚

使用JPA的Spring数据不会在出错时回滚事务

如何使用 SQL Developer 管理带有回滚的单元测试