개발/자바
Assertions 클래스 (JUnit 5)
피터JK
2025. 2. 14. 14:34
728x90
📌 Assertions 클래스 (JUnit 5)
JUnit 5에서는 org.junit.jupiter.api.Assertions 클래스를 사용하여 다양한 단언(assert) 메서드를 제공합니다.
✅ 기본 값 비교
| 메서드 | 설명 |
| assertEquals(expected, actual) | 기대값과 실제값이 같은지 확인 |
| assertNotEquals(expected, actual) | 기대값과 실제값이 다른지 확인 |
| assertSame(expected, actual) | 두 객체가 동일한 객체인지 (== 비교) 확인 |
| assertNotSame(expected, actual) | 두 객체가 동일한 객체가 아닌지 확인 |
| assertTrue(condition) | 조건이 true인지 확인 |
| assertFalse(condition) | 조건이 false인지 확인 |
| assertNull(actual) | 값이 null인지 확인 |
| assertNotNull(actual) | 값이 null이 아닌지 확인 |
✅ 배열 & Iterable 비교
| 메서드 | 설명 |
| assertArrayEquals(expectedArray, actualArray) | 배열의 모든 요소가 같은지 확인 |
| assertIterableEquals(expectedIterable, actualIterable) | Iterable(리스트, 셋 등)의 요소들이 같은지 확인 |
✅ 예외 처리
| 메서드 | 설명 |
| assertThrows(Exception.class, () -> {...}) | 특정 예외가 발생하는지 확인 |
| assertDoesNotThrow(() -> {...}) | 예외가 발생하지 않는지 확인 |
✅ 시간 검증
| 메서드 | 설명 |
| assertTimeout(Duration.ofMillis(500), () -> {...}) | 지정한 시간 내에 실행되는지 확인 |
| assertTimeoutPreemptively(Duration.ofMillis(500), () -> {...}) | 지정한 시간 내에 실행되지 않으면 즉시 중단 |
✅ 그룹 테스트
| 메서드 | 설명 |
| assertAll("테스트 그룹", () -> assertTrue(...), () -> assertEquals(...)) | 여러 개의 테스트를 그룹으로 묶어 한 번에 실행 |
📌 Assert 클래스 (JUnit 4)
JUnit 4에서는 org.junit.Assert 클래스를 사용하여 유사한 단언 메서드를 제공합니다.
| JUnit 4 | JUnit 5 (대응) |
| Assert.assertEquals(expected, actual) | Assertions.assertEquals(expected, actual) |
| Assert.assertNotEquals(expected, actual) | Assertions.assertNotEquals(expected, actual) |
| Assert.assertTrue(condition) | Assertions.assertTrue(condition) |
| Assert.assertFalse(condition) | Assertions.assertFalse(condition) |
| Assert.assertNull(actual) | Assertions.assertNull(actual) |
| Assert.assertNotNull(actual) | Assertions.assertNotNull(actual) |
| Assert.assertSame(expected, actual) | Assertions.assertSame(expected, actual) |
| Assert.assertNotSame(expected, actual) | Assertions.assertNotSame(expected, actual) |
| Assert.assertArrayEquals(expectedArray, actualArray) | Assertions.assertArrayEquals(expectedArray, actualArray) |
| Assert.fail("에러 메시지") | Assertions.fail("에러 메시지") |
JUnit 5에서는 더 많은 기능을 제공하고 가독성이 좋아졌기 때문에, 가능하면 JUnit 5를 사용하는 것이 좋습니다. 🚀
728x90