首页 > 解决方案 > 在 Spring Boot 中调试 JUnit 测试时提交内部事务

问题描述

按照文档中的@Transactional建议将注释添加到我的 JUnit 测试类中。

但是,测试方法正在访问多个服务方法,每个方法都是一个事务(并且也带有注释@Transactional)。也许这些不是单元测试?无论如何,我希望我的测试调用多个服务方法,无论你如何调用它们。

测试中间的内部事务没有提交到数据库(因为Test类@Transactional注解),所以我无法在每次内部事务后调试测试时检查数据库。但是,如果我删除@Transactional注释,测试就会中断。

我应该如何配置测试以便在内部事务发生时提交它们?

标签: spring-bootjunitspring-transactionsspring-test

解决方案


使用 Spring Framework 3.2.x,您可以使用它@Rollback(false)来指示Spring TestContext Framework为您的集成测试提交事务。

从 Spring Framework 4.2 开始,您可以使用它@Commit来实现相同的目标。


推荐阅读