gpt4 book ai didi

spring-boot - 为什么 @SpringRunner test 在每次测试时都会重新初始化类?

转载 作者:行者123 更新时间:2023-12-02 09:16:44 25 4
gpt4 key购买 nike

我正在使用@PostConstruct在运行测试之前进行一些初始设置,但似乎@PostConstruct方法在每个测试上运行,而不是仅在测试类初始化后一次。我还看到在 @PostConstruct 之前的每个测试之前都会调用构造函数。为什么测试类在每个 @Test 方法上都被初始化,而不是只初始化一次?

我正在使用spring-boot-starter-test:1.5.7.RELEASE

示例测试设置:

@RunWith(SpringRunner.class)
public class TestClass {

public TestClass() {
System.out.println("constructor");
}

@PostConstruct
public void setup() {
System.out.println("setting up");
}

@Test
public void test1() {
System.out.println("test 1");
}

@Test
public void test2() {
System.out.println("test 2");
}
}

在输出中,“构造函数”被打印两次,“设置”被打印两次。 “test 1”和“test 2”各打印一次。

最佳答案

这是 JUnit 的标准生命周期。在调用每个测试方法之前会创建该类的新实例。创建该实例需要调用测试类的构造函数。鉴于已调用构造函数,因此调用任何 @PostConstruct 方法都是有意义的。

关于spring-boot - 为什么 @SpringRunner test 在每次测试时都会重新初始化类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46480775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com