반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- java테스트
- 인텔리제이
- string
- math
- json
- Visual Studio Code
- 자바문법
- 테스트자동화
- 문자열
- input
- HashMap
- junit5
- Array
- html
- Eclipse
- 자바스크립트
- ArrayList
- javascript
- Java
- js
- 단위테스트
- IntelliJ
- junit
- vscode
- 이클립스
- 정규식
- 자바
- 배열
- CSS
- list
Archives
- Today
- Total
어제 오늘 내일
[JUnit5] assumeFalse()로 조건 불만족 시 테스트 실행하기 본문
1. assumeFalse()
assumeFalse()는 JUnit5의 Assumptions 기능 중 하나로, 특정 조건이 거짓일 때만 테스트를 실행하도록 제어하는 역할을 한다.
조건이 참이라면 해당 테스트는 실패가 아닌 ‘Skipped(건너뛰기)’로 처리된다.
환경에 따라 실행 여부가 달라지는 테스트를 작성할 때 특히 유용하다.
2. 기본 사용법 예제
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assumptions.*;
import static org.junit.jupiter.api.Assertions.*;
class AssumptionFalseTest {
@Test
void testRunWhenNotDev() {
String env = System.getenv("APP_ENV");
assumeFalse("dev".equals(env));
// env가 "dev"이면 테스트는 실행되지 않고 스킵됨
assertTrue(env != null); // dev 환경이 아닐 때만 실행됨
}
}
설명
- "dev".equals(env)가 참이면 테스트는 건너뛰기 처리된다.
- dev 환경이 아닐 때만 실제 검증 코드가 동작한다.
3. 메시지를 함께 사용하는 방식
스킵 이유를 테스트 보고서에 명확히 남기고 싶다면 메시지를 추가하면 된다.
assumeFalse(isWindows(), "Windows 환경에서는 이 테스트를 실행하지 않습니다.");
설명
- 실행 환경을 제한하는 문서를 남기는 데 유용하다.
4. 조건 로직을 메서드로 분리해 가독성 향상시키기
조건이 복잡하거나 재사용해야 한다면 메서드로 분리하는 것이 좋다.
@Test
void testWhenFeatureDisabled() {
assumeFalse(isFeatureEnabled());
// 기능 플래그가 꺼져 있을 때만 실행되는 테스트
assertEquals("disabled", getFeatureState());
}
private boolean isFeatureEnabled() {
// 예: 설정 파일, 환경 변수 등을 체크
return false;
}
설명
- 실제 테스트 목적을 더 명확하게 드러낼 수 있으며 유지보수에 용이하다.
5. assumeFalse()가 필요한 상황
- 특정 OS에서는 실행하면 안 되는 테스트가 있을 때
- 기능 플래그(Feature Flag)가 활성화되어 있으면 테스트가 무의미할 때
- 특정 CI 환경에서는 테스트를 건너뛰어야 할 때
- 외부 시스템이 특정 상태일 때 테스트 실행을 차단하고 싶을 때
즉, 조건이 만족되면 스킵해야 하는 테스트를 만들 때 사용하면 적합하다.
6. 함께 알아두면 좋은 Assumptions 기능
- assumeTrue() — 조건이 참일 때 테스트 실행
- assumingThat() — 조건부로 일부 테스트 코드만 실행하고 나머지는 계속 진행
환경 기반 테스트 제어를 깔끔하게 구성하고 싶을 때 큰 도움이 된다.
반응형
'IT > JUnit' 카테고리의 다른 글
| [JUnit5] TestInfo.getDisplayName() 사용 가이드 (0) | 2026.01.20 |
|---|---|
| [JUnit5] assumingThat()으로 부분 조건부 테스트 처리 (0) | 2026.01.19 |
| [JUnit5] assumeTrue()로 조건 만족 시 테스트 실행하기 (1) | 2026.01.18 |
| [JUnit5] ConditionEvaluationResult로 조건 평가 결과 처리하기 (0) | 2026.01.18 |
| [JUnit5] ExtensionContext로 테스트 실행 컨텍스트 다루기 (0) | 2026.01.17 |
Comments
