import org.junit.jupiter.api.*;
public class JUnitCycleTest {
@BeforeAll // 전체 테스트를 시작하기 전에 1회 실행하므로 메서드는 static으로 선언
static void beforeAll(){
System.out.println("@BeforeAll");
}
@BeforeEach // 테스트 케이스를 시작하기 전마다 실행
public void beforeEach(){
System.out.println("@BeforeEach");
}
@Test
public void test1(){
System.out.println("test1");
}
@Test public void test2(){
System.out.println("test2");
}
@Test public void test3(){
System.out.println("test3");
}
@AfterAll // 전체 테스트를 마치고 종료하기 전에 1회 실행하므로 메서드는 static으로 선언
static void afterAll(){
System.out.println("@AfterAll");
}
@AfterEach // 테스트 케이스를 종료하기 전마다 실행
public void afterEach(){
System.out.println("@AfterEach");
}
}
전체 테스트를 시작하기 전에 처음으로 한 번만 실행한다.
ex) DB에 연결하거나 테스트 환경을 초기화할 때 사용한다.
전체 테스트 실행 주기에서 한 번만 호출되어야 하기 때문에 메서드를 static으로 선언해야 한다.
테스트 케이스를 시작하기 전에 매번 실행한다.
ex) 테스트 메서드에서 사용하는 객체를 초기화
ex) 테스트에 필요한 값을 미리 넣을 때 사용
각 인스턴스에 대해 메서드를 호출해야 하므로 메서드는 static이 아니어야 한다.
전체 테스트를 마치고 종료하기 전에 한 번만 실행한다.
ex) DB 연결을 종료
ex) 공통적으로 사용하는 자원을 해제할 때 사용
전체 테스트 실행 주기에서 한 번만 호출되어야 하므로 메서드는 static
각 테스트 케이스를 종료하기 전 매번 실행한다.
ex) 테스트 이후에 특정 데이터를 삭제해야 하는 경우
메서드는 static이면 안됨.
@BeforeAll
@BeforeEach
test1
@AfterEach
@BeforeEach
test2
@AfterEach
@BeforeEach
test3
@AfterEach
@AfterAll
좋은 글 감사합니다. 자주 올게요 :)