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 |
Tags
- playgroundAI
- 영어일기
- serializtion
- xapi
- extendwith
- LRS
- 정적분석도구
- diary
- JUnit
- 테스트
- 스택
- notempty
- 일기
- 소스코드품질
- application.yml
- 알고리즘
- JUnit5
- 부하 테스트
- AI그림
- 데이터 거버넌스
- 연계방식
- 백준
- 데이터 직렬화
- useRef
- git
- git 오류
- Runwith
- Live Template
- 파이썬
- 코딩테스트
Archives
- Today
- Total
HanSol's Oak Cask
JUnit4의 @Test(expected = ...)는 JUnit5에서 지원 X 본문
✅ JUnit4 @Test(expected = ...) vs JUnit5 assertThrows() 차이 정리
JUnit5로 넘어오면서 기존 JUnit4에서 사용하던 예외 테스트 방식이 달라졌습니다. 아래에서 차이점과 적용 방법을 정리해보았습니다.
1. JUnit4 방식 (✅ 가능)
JUnit4에서는 @Test 어노테이션에 expected 속성을 이용하여 예외 발생 여부를 테스트했습니다.
@Test(expected = IllegalArgumentException.class)
public void testExceptionThrown() {
someMethodThatThrows(); // 예외가 발생해야 테스트 통과
}
2. JUnit5 방식 (❌ expected 불가, ✅ assertThrows 사용)
JUnit5에서는 @Test(expected = ...) 문법이 제거되었습니다. 대신, Assertions.assertThrows() 메서드를 사용해야 합니다.
import static org.junit.jupiter.api.Assertions.assertThrows;
@Test
void testExceptionThrown() {
assertThrows(IllegalArgumentException.class, () -> {
someMethodThatThrows();
});
}
💡 예외 메시지까지 검증하고 싶다면?
@Test
void testExceptionWithMessage() {
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> {
someMethodThatThrows();
});
assertEquals("예상 에러 메시지", exception.getMessage());
}
✅ 정리 표
| 항목 | JUnit4 | JUnit5 |
| 예외 테스트 방식 | @Test(expected = ...) | assertThrows() 사용 |
| 예외 메시지 검증 | 불편함 | 가능 (getMessage()) |
| 람다식 사용 | 불필요 | 필수 (() -> {}) |
✍️ 결론
JUnit5에서는 @Test(expected = ...) 문법이 삭제되었으므로,
반드시 assertThrows() 로 예외 발생 여부를 확인해야 합니다.
더 정교하게 예외 메시지나 속성을 검증할 수도 있어 유연성이 높아졌습니다.
'GPT가 말아주는 지식' 카테고리의 다른 글
| IntelliJ에서 커스텀 Live Template 만드는 방법 (TDD 예제 포함) (1) | 2025.02.07 |
|---|---|
| JUnit4 @RunWith vs JUnit5 @ExtendWith 차이점 정리 (0) | 2025.02.07 |
| Spring Boot 설정 파일 비교: application.yml vs application.properties 차이점 정리 (0) | 2025.02.07 |