이번 글에서는 클래스 수준 및 메서드 수준에서 @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(3, 2));
}
@Test
void test_subtraction() {
assertEquals(1, Calculator.subtraction(3, 2));
}
@Test
void test_multiplication() {
assertEquals(15, Calculator.multiplication(3, 5));
}
@Test
void test_division() {
assertEquals(5, Calculator.division(25, 5));
}
@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(3, 2));
}
@Test
void test_subtraction() {
assertEquals(1, Calculator.subtraction(3, 2));
}
@Test
void test_multiplication() {
assertEquals(15, Calculator.multiplication(3, 5));
}
@Test
void test_division() {
assertEquals(5, Calculator.division(25, 5));
}
@Disabled("#200 문제가 해결될 때까지 비활성화됨")
@Test
void test_isEvenNumber() {
assertFalse(Calculator.isEvenNumber(3));
}
@Disabled("#300 문제가 해결될 때까지 비활성화됨")
@Test
void test_isPrimeNumber() {
assertTrue(Calculator.isPrimeNumber(13));
}
}
|
cs |
테스트 수행 결과 입니다. @Disabled Annotation이 붙어있는 메서드만 테스트를 수행하지 않았습니다.
'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 |