본문 바로가기

Java/Junit 5

Junit 5 - @Disabled

728x90

이번 글에서는  클래스 수준 및 메서드 수준에서 @Disabled 주석을 사용하여 Junit 5가 테스트를 비활성화하거나 Junit 5 테스트 사례를 건너뛰는 것을 배워보도록 하겠습니다.

 

1. 테스트를 비활성화하는 이유는 무엇입니까?

개발 중에 기능 또는 기능에 알려진 문제가 있기 때문에 실행에서 일부 테스트를 비활성화하거나 건너뛸 수 있습니다.
JUnit에서 테스트를 무시하려면 클래스 또는 메서드 위의 @Test Annotation을 제거할 수 있는 Annotation을 달 수 있습니다. 이 경우 비활성화된 테스트는 생성된 보고서 또는 실행기 결과에 없습니다. 실패, 건너뛰기 또는 통과 여부와 그 이유에 대한 보고서의 모든 테스트 사례에 대한 기록을 포함하는 것이 항상 좋습니다. Junit 5 Jupiter에서는 @Disabled Annotation을 사용하여 테스트를 비활성화할 수 있습니다. JUnit 4의 테스트 테스트에서는 @Ignore Annotation을 사용하여 를 비활성화하거나 무시합니다.

 

2. Junit 5 @Disabled

@Disabled Annotation은 이 테스트가 비활성화된 이유를 나타내는 하나의 선택적 매개변수만 허용합니다.  개발자가 테스트 클래스 또는 테스트 메서드가 비활성화된 이유에 대한 간단한 설명을 제공하는 것이 좋습니다.

 

 예) @Disabled('#319 문제가 해결될 때까지 비활성화됨')

 

2.1. 전체 테스트 클래스 비활성화

클래스 이름 위에 @Disabled Annotation을 설정합니다.

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
package com.tistory.itbaewom.disabled;
 
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
 
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
 
import com.tistory.itbaewom.util.Calculator;
 
 
// 클래스 수준 비활성화
@Disabled("#319 문제가 해결될 때까지 비활성화됨")
public class Junit5DisableClassLevel_CalculatorTest  {
 
    @Test
    void test_addition() {
        assertEquals(5, Calculator.addition(32));
    }
 
    @Test
    void test_subtraction() {
        assertEquals(1, Calculator.subtraction(32));
    }
    
    @Test
    void test_multiplication() {
        assertEquals(15, Calculator.multiplication(35));
    }
 
    @Test
    void test_division() {
        assertEquals(5, Calculator.division(255));
    }
 
    @Test
    void test_isEvenNumber() {
        assertFalse(Calculator.isEvenNumber(3));
    }
 
    @Test
    void test_isPrimeNumber() {
        assertTrue(Calculator.isPrimeNumber(13));
    }
}
cs

 

테스트 수행 결과 입니다. 모든 테스트 메서드가 테스트를 수행하지 않았습니다.

 

 

2.2. 테스트 메서드 비활성화

테스트를 수행하지 않을 메서드 위에 @Disabled Annotation을 설정합니다.

 

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
package com.tistory.itbaewom.disabled;
 
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
 
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
 
import com.tistory.itbaewom.util.Calculator;
 
// 메서드 수준 비활성화
public class Junit5DisableMethodLevel_CalculatorTest  {
 
    @Test
    void test_addition() {
        assertEquals(5, Calculator.addition(32));
    }
 
    @Test
    void test_subtraction() {
        assertEquals(1, Calculator.subtraction(32));
    }
    
    @Test
    void test_multiplication() {
        assertEquals(15, Calculator.multiplication(35));
    }
 
    @Test
    void test_division() {
        assertEquals(5, Calculator.division(255));
    }
 
    @Disabled("#200 문제가 해결될 때까지 비활성화됨")
    @Test
    void test_isEvenNumber() {
        assertFalse(Calculator.isEvenNumber(3));
    }
    
    @Disabled("#300 문제가 해결될 때까지 비활성화됨")
    @Test
    void test_isPrimeNumber() {
        assertTrue(Calculator.isPrimeNumber(13));
    }
}
cs

 

테스트 수행 결과 입니다. @Disabled Annotation이 붙어있는 메서드만 테스트를 수행하지 않았습니다.

 

 

728x90

'Java > Junit 5' 카테고리의 다른 글

Junit 5 - 반복 테스트  (0) 2023.03.13
Junit 5 - 조건부 테스트 실행  (0) 2023.03.09
Junit 5 - Assumptions  (0) 2023.03.08
Junit 5 – @TestInstance  (0) 2023.03.08
Junit 5 – Display names  (0) 2023.03.07