我有一个测试类,里面有多个嵌套的测试类。外部测试类使用实现 BeforeAllCallback 和 AfterAllCallback 的扩展。在执行外部测试类时,会为每个嵌套类调用这些接口的方法。这是预期的行为吗?我找不到任何明确指定这一点的文档。
外部测试类也有@BeforeAll 和@AfterAll 方法。这些在执行外部测试类时执行一次。我有点期望扩展的行为相同。
如果这种行为确实是预料之中的,有没有办法抑制它?
这是一个最小的代码示例。但是,非自定义扩展(例如 SpringExtension)显示相同的行为:
@ExtendWith(MyExtension.class)
public class SomeTest {
@BeforeAll
static void create() {
System.out.println("Call beforeAll of test class");
}
@AfterAll
static void destroy() {
System.out.println("Call afterAll of test class");
}
@Nested
class InnerTest1 {
@Test
void testingA() {
System.out.println("Test 1A");
}
@Test
void testingB() {
System.out.println("Test 1B");
}
}
@Nested
class InnerTest2 {
@Test
void testingA() {
System.out.println("Test 2A");
}
@Test
void testingB() {
System.out.println("Test 2B");
}
}
}
Run Code Online (Sandbox Code Playgroud)
public class MyExtension …Run Code Online (Sandbox Code Playgroud)