2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

JUnit에서 @Disabled 애너테이션의 사용은 어떤 경우인가요?

_____
Q: JUnit에서 @Disabled 애너테이션은 무엇인가요?
A: @Disabled 애너테이션은 특정 테스트 메서드나 테스트 클래스의 실행을 일시적으로 비활성화(즉, 건너뛰기)하기 위해 사용됩니다.

Q: @Disabled 애너테이션은 언제 사용하나요?
A:
- 현재 구현이 완료되지 않은 테스트를 임시로 비활성화할 때
- 테스트가 실패하는 원인을 조사하는 동안 해당 테스트 실행을 잠시 중단할 때
- 외부 서비스나 리소스에 의존하여 실행이 어려운 테스트를 일시적으로 제외할 때
- 특정 환경이나 조건에서만 실행되어야 하는 테스트를 다른 환경에서 비활성화할 때

Q: @Disabled 애너테이션을 사용하는 방법은?
A:
- 테스트 메서드 위에 `@Disabled`를 붙이면 해당 메서드가 실행되지 않습니다.
- 테스트 클래스 위에 붙이면 그 클래스 내 모든 테스트가 비활성화됩니다.
- 선택적으로 `@Disabled("비활성화 이유")`로 이유를 명시할 수도 있습니다.

예:
```java
@Disabled("기능 수정 중 임시 비활성화")
@Test
void testFeature() {
// 테스트 코드
}
```

Q: @Disabled 애너테이션과 @Ignore의 차이점은 무엇인가요?
A: JUnit 4에서는 @Ignore를 사용하지만, JUnit 5부터는 @Disabled로 이름이 변경되었습니다. 기능적으로는 비슷하나, JUnit 5에서는 @Disabled가 공식 권장됩니다.

Q: @Disabled를 남용하면 안 좋은 점은 무엇인가요?
A:
- 테스트 커버리지가 감소하여 버그가 누락될 수 있습니다.
- 비활성화된 테스트가 방치되어 코드 품질을 떨어뜨릴 위험이 있습니다.
- 주기적으로 비활성화된 테스트를 재검토하여 다시 활성화하는 것이 좋습니다.

Q: @Disabled 상태인 테스트 결과는 테스트 리포트에 어떻게 표시되나요?
A: 비활성화된(@Disabled) 테스트는 테스트 결과에서 통과나 실패로 처리되지 않고 “Skipped” 또는 “Disabled” 상태로 표시됩니다.

Q: @Disabled를 조건부로 사용하고 싶으면 어떻게 하나요?
A: JUnit 5에서는 조건부 테스트 실행을 위한 @EnabledIf, @DisabledIf, @EnabledOnOs, @DisabledOnJre 같은 애너테이션도 제공하므로 특정 조건에 따라 테스트를 활성화 또는 비활성화할 수 있습니다.
JUnit에서 `@Disabled` 애너테이션은 특정 테스트 클래스나 테스트 메서드를 실행하지 않도록 "비활성화"할 때 사용됩니다.

즉, 이 애너테이션이 붙은 테스트는 테스트 실행 과정에서 건너뛰게 되어, 테스트 결과에 포함되지 않습니다.

`@Disabled`를 사용하는 일반적인 경우는 다음과 같습니다: 1. 임시로 테스트를 중지할 때 테스트가 아직 완성되지 않았거나, 특정 기능이 개발 중이어서 관련 테스트가 실패하는 경우, 임시로 해당 테스트를 실행하지 않도록 `@Disabled`를 붙입니다.

이는 테스트 스위트가 불필요한 실패 때문에 혼란을 주지 않도록 하기 위함입니다.



2. 알려진 버그 또는 문제 존재 시 테스트가 실패하는 이유가 코드상의 버그나 외부 환경 문제 때문인데, 아직 이를 해결하지 못한 경우 해당 테스트를 비활성화하여 문제를 추적하거나 대응할 시간을 벌 수 있습니다.



3. 환경 의존적 테스트 특정 환경에서만 실행되거나 외부 리소스(데이터베이스, 네트워크 등)에 의존적인 테스트가 일시적으로 실행을 피해야 할 때 사용합니다.



4. 리팩토링 또는 코드 변경 중 테스트 대상 코드가 변경되거나 리팩토링되는 동안 테스트를 잠시 중단해야 할 경우 사용하여, 완전히 준비된 이후에 다시 활성화합니다.

`@Disabled` 애너테이션은 클래스 레벨 혹은 메서드 레벨에 붙일 수 있습니다.

클래스에 붙이면 해당 클래스의 모든 테스트 메서드가 비활성화되고, 메서드에 붙이면 그 특정 테스트만 실행되지 않습니다.

또한, `@Disabled`에는 선택적으로 비활성화하는 이유를 설명하는 문자열을 인자로 넣을 수 있어서, 테스트를 비활성화한 배경이나 사유를 문서화하는 데 도움이 됩니다.

예를 들어: ```java @Disabled("현재 외부 API 서비스가 다운되어 임시 중지") ``` 말하면, JUnit의 `@Disabled`는 테스트 실행에서 제외하고자 하는 테스트를 명확히 표시하고, 필요 시 그 이유를 기술함으로써 테스트 관리와 협업을 용이하게 하는 도구입니다.

작성자: 최하윤 [비회원] | 작성일자: 1년 전 2025-05-26 02:51:13
조회수: 258 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.