728x90
@BeforeAll
전체 테스트를 진행하기 전에 처음으로 한번 실행됨
예를 들어서 데이터 베이스를 연결해야 하거나 테스트 환경을 조성할때 사용한다 이 애너테이션은 전체 테스트 실행주기에서 한 번만 호출되어야 하기 때문에 static 매서드를 사용한다
@BeforeEach
테스트 케이스를 시작하기 전에 매번 실행
예를 들어서 테스트 메서드에서 사용하는 객체를 초기화 하거나 테스트에 필요한 값을 미리 넣을 때 사용할 수 있습니다. 각 인스턴스에 대해 메서드를 호출해야 하므로 메서드는 static이 아니어야 합니다.
@AfterAll
전체 테스트를 마치고 종료하기 전에 한 번만 실행합니다. 예를 들어 데이터 베이스 연결을 종료할 때나 공통적으로 사용하는 자원을 해제할 때 사용할 수 있습니다. 전체 테스트 실행주기에서 한 번만 호출되어야 하므로 메서드를 static으로 선언해야 합니다.
@AfterEach
각 테스트 케이스를 종료하기 전 매번 실행합니다. 예를 들어 테스트 이후에 특정 데이터를 삭제해야하는 경우 사용합니다. static 메서드가 아니어야 합니다
코드
import org.junit.jupiter.api.*;
public class JUnitCycleTest {
@BeforeAll // 전체 테스트를 시작하기 전에 1회 실행 -> 메서드는 static으로 선언
static void beforeAll(){
System.out.println("JUnitCycleTest.beforeAll");
}
@BeforeEach // 테스트 케이스를 시작하기 전마다 실행
public void beforeEach(){
System.out.println("JUnitCycleTest.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
static void afterAll(){
System.out.println("JUnitCycleTest.AfterAll");
}
@AfterEach
public void afterEach(){
System.out.println("JUnitCycleTest.afterEach");
}
// 결과
/*
JUnitCycleTest.beforeAll // 시작하기 전 한번 실행
JUnitCycleTest.beforeEach // 시작할때 마다 실행
test1
JUnitCycleTest.afterEach // 끝나고 한번 실행
JUnitCycleTest.beforeEach
test2
JUnitCycleTest.afterEach
JUnitCycleTest.beforeEach
test3
JUnitCycleTest.afterEach
JUnitCycleTest.AfterAll // 전부 끝나고 한번 실행
* */
}
반응형
'Spring, Spring boot' 카테고리의 다른 글
타임리프와 템플릿 엔진 (0) | 2023.10.17 |
---|---|
직렬화와 역직렬화 (0) | 2023.10.17 |
스프링 부트 프로젝트의 흐름 (0) | 2023.10.13 |
조회 빈이 두개 이상일 때 처리 법 (0) | 2023.10.11 |
스프링 빈 탐색위치 (0) | 2023.10.11 |