테스트를 실행하기 전에 @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");
}
}
을 두 번 인쇄 '설정'. 'test 1'과 'test 2'가 각각 한 번씩 인쇄됩니다.
와우, 나는 이것을 전혀 몰랐다. 나는 이것에 대한 설명을 찾으려고 노력했지만 아무데도 그것을 찾을 수 없었다. 처음에는 클래스가 한번 인스턴스화되고 각 @Test 메소드가 순차적으로 인스턴스 내에서 호출 될 것이라고 생각했습니다. 자 이제 이것이 JUnit의 표준 라이프 사이클이라는 것을 알았으니 완벽하다고 할 수 있습니다. 감사! –