[Spring]Junit 생명주기

Gaeng·2025년 4월 21일

[Spring] 공부

목록 보기
19/21
post-thumbnail

JUnit은 자바에서 가장 널리 사용되는 테스트 프레임워크!

테스트의 신뢰성과 독립성을 확보하기 위해 테스트 인스턴스의 생명주기와 수명주기 메서드를 제공

어노테이션실행 시점메서드 유형주요 용도/예시
@BeforeAll모든 테스트 메서드 실행 전 (1회)static 메서드DB 연결, 테스트 환경 초기화 등
@BeforeEach각 테스트 메서드 실행 전인스턴스 메서드매 테스트마다 초기화 작업
@Test실제 테스트 코드인스턴스 메서드테스트 본문
@AfterEach각 테스트 메서드 실행 후인스턴스 메서드매 테스트마다 정리 작업
@AfterAll모든 테스트 메서드 실행 후 (1회)static 메서드DB 종료, 공통 자원 해제 등
package book.demo;

import org.junit.jupiter.api.*;

public class JunitCycleTest {

    @BeforeAll //전체 테스트를 시작하기 전에 1회 실행하므로 메서드는 static 선언
    static void beforeAll() {
        System.out.println("Before All");
    }

    @BeforeEach // 테스트 케이스를 시작하기전 마다 실행
    public void beforeEach() {
        System.out.println("Before Each");
    }

    @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("After All");
    }
    
    @AfterEach //테스트 케이스를 종료하기 전마다 실행
    public void afterEach() {
        System.out.println("After Each");
    }
}

생명주기

다음과 같은 테스트 코드를 실행했을 때 다음과 같이 나온다.

@BeforeAll -> <@BeforeEach -> @Test -> @AfterEach (테스트 수 만큼 반복)> -> @AfterEach
결과

profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글