java - 事务回滚在 JUnit5 的 @Nested 类的测试用例中不起作用

标签 java spring spring-boot mybatis junit5

我使用 spring-boot、JUnit5、Mybatis。

@SpringJUnitJupiterConfig(classes = {RepositoryTestConfig.class})
@MapperScan
@Rollback
@Transactional
public class TestClass {
    @Autowired
    private TestMapper testMapper;

    @BeforeEach
    void init() {
        User user = new User();
        testMapper.insert(user);    
    }

    @Test
    public void test1() {
        // (1) success rollback
    }

    @Nested
    class WhenExistData {
        @Test
        public void test2() {
            // (2) rollback not working
        }   
    }
}

(1) 正在回滚。并输出如下日志。

2017-05-26 22:21:29 [INFO ](TransactionContext.java:136) Rolled back transaction for test context ...

但是,(2) 不起作用。我希望能够回滚到 @Nested

最佳答案

这是可以预料的:Spring TestContext 框架从来不支持嵌套测试类的“继承”。

因此,您的“变通办法”实际上是此时实现目标的正确方法。

但请注意,我可能会与 SPR-15366 一起添加对嵌套测试类的“伪继承”支持.

问候,

Sam(Spring TestContext 框架的作者)

关于java - 事务回滚在 JUnit5 的 @Nested 类的测试用例中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44203244/

相关文章:

java - catelina.properties 中的 ${catalina.base} 未被 CATALINA_BASE 替换

java - word.set()方法在map reduce hadoop中抛出空指针异常

java - 读取 RSS 提要,阅读器在数据结束之前结束

java - Spring使用ref标签的本地属性引用存在于其他xml中的bean

java - 使用 cargo maven 插件将 spring 项目部署到远程服务器

java - 过滤器在注册为 Spring bean 时调用两次

java - 如何输出我存储的这些信息?

java - 如何更新对象 hibernate

spring-boot - OUT_OF_SERVICE VS DOWN 健康状态(Spring Boot)

java - 禁用烦人的 PODAM 日志