Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

David의 블로그

[JUnit] JUnit 테스트 코드 라이프 사이클 본문

프로그래밍/Spring Boot

[JUnit] JUnit 테스트 코드 라이프 사이클

David 리 2025. 5. 2. 15:01
반응형

JUnit은 어노테이션에 따라 실행순서를 정할 수 있다.

일종에 라이프 사이클이 존재한다는 것이다.

 

어노테이션 이름만 봐도 얼추 실행될 시점을 알수가 있다.

정확한건 아래 코드를 통해서 알아보도록 하자!.

 

 

[JUnitCycleTest.java]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.example.demo;
 
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
 
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
    static void afterAll() {              // 전체테스트를 마치고 종료하기 전에 1회 실행하므로 메소드는 static으로 선언
        System.out.println("@AfterAll~!!!");
    }
    
    @AfterEach
    public void afterEach() {             // 테스트 케이스를 종료하기 전마다 실행
        System.out.println("@AfterEach~!!!");
    }
}
 
cs

자!. 어떠한가?? 대충 어떤 시점에 실행되는지 짐작이 가지 않는가??

12번 : @BeforeAll 어노테이션은 전체 테스트를 시작하기 전에 처음으로 딱 한 번만 실행이 된다. 예를 들어 DB를 연결하거나

          테스트 환경을 초기화 할 때 사용. 전체 테스트 실행 주기에서 한 번만 실행돼야해서 static으로 선언.

17번 : @BeforeEach 어노테이션은 테스트 케이스를 시작하기 전에 매번 실행.

37번 : @AtferAll 어노테이션은 전체 테스트를 마치고 종료하기 전에 딱 한 번만 실행. @BeforeAll 어노테이션과 마찬가지로

          실행 주기에서 한 번만 실행돼야해서 static으로 선언.

42번 : @AfterEach 어노테이션은 각 테스트 케이스를 종료하기 전 매번 실행.

 

 

[결과]

따라서 앞서 설명한대로 @~All 끝나는 어노테이션은 전체 테스트가 시작하기 전/종료하기 전 딱 한 번만 실행돼야하니 한 번씩 찍힌것을 확인할 수 있다.

@~Each 어노테이션은 테스트 케이스가 시작/종료 전 매번 실행되는것을 볼 수 있다.

반응형