0
我正在使用@PostConstruct
在運行測試之前進行一些初始設置,但似乎@PostConstruct
方法正在每個測試上運行,而不是在測試類初始化後才運行一次。我還看到,在@PostConstruct
之前的每個測試之前都會調用構造函數。爲什麼測試類在每個@Test方法中被初始化而不是一次?爲什麼@SpringRunner測試會在每個測試中重新初始化類?
我使用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'和'測試2'每打印一次。
哇,我根本不知道這一點。我一直在試圖找到一個解釋,但無法找到任何地方。我最初認爲該類實例化了一次,然後在實例內依次調用每個@Test方法。那麼現在我知道這是JUnit的標準生命週期,它非常有意義。謝謝! –