我正在使用@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");
}
}
在输出中,"构造函数"打印了两次,"设置"被打印了两次。每次打印一次"测试1"one_answers"测试2"。
这是Junit的标准生命周期。在调用每个测试方法之前,创建了类的新实例。创建该实例需要调用测试类的构造函数。鉴于构造函数已被调用,然后调用任何@postConstruct方法。