0

每次测试到我的嵌套类后,我无法重新加载我的 spring 应用程序:

/*...*/
@DirtiesContext( classMode = AFTER_EACH_TEST_METHOD )
public class MyTestClass {

    @Nested
    class MyNestedClass_1 {

        @Test
        void test_1() {
            /*...*/
        }

        @Test
        void test_2() {
            /*...*/
        }
    }

    @Nested
    class MyNestedClass_2 {
        /*..*/
    }
}

然而,它在没有嵌套类的情况下工作得很好:

/*...*/
@DirtiesContext( classMode = AFTER_EACH_TEST_METHOD )
public class MyTestClass {

    @Test
    void test_1() {
        /*...*/
    }

    @Test
    void test_2() {
        /*...*/
    }
}

有谁知道为什么它不起作用?

4

1 回答 1

0

Spring 对 JUnit 5 的@Nested类特性的支持目前是有限的。您可以按照进度在GitHub 上解决此问题。目前,我想您必须删除嵌套类并密切关注进度。

您还可以通过在嵌套类之上添加来找到解决此问题的可能方法:@DirtiesContext( classMode = AFTER_EACH_TEST_METHOD )

@DirtiesContext( classMode = AFTER_EACH_TEST_METHOD )
public class MyTestClass {

    @Nested
    @SpringBootTest
    @DirtiesContext( classMode = AFTER_EACH_TEST_METHOD )
    class MyNestedClass_1 {

        @Test
        void test_1() {
            /*...*/
        }

        @Test
        void test_2() {
            /*...*/
        }
    }

    @Nested
    @SpringBootTest
    @DirtiesContext( classMode = AFTER_EACH_TEST_METHOD )
    class MyNestedClass_2 {
        /*..*/
    }
}
于 2020-08-03T03:48:49.943 回答