반응형
해당 글에서는 JUnit5 버전을 기준으로 API Document에 대해 확인합니다.
💡 [참고] 이전에 작성한 Test 관련 글들을 읽으시면 도움이 됩니다.
분류 | 링크 |
JUnit 5 이론 및 구성 요소 | https://adjh54.tistory.com/341 |
JUnit 5 환경구성 및 활용예제 | https://adjh54.tistory.com/342 |
JUnit 5 + Mockito 이론 및 활용예제 | https://adjh54.tistory.com/346 |
JUnit 5 + MockMvc 이론 및 활용예제 | https://adjh54.tistory.com/347 |
Assertions API Document | https://adjh54.tistory.com/348 |
개발방법론 TDD, BDD | https://adjh54.tistory.com/305 |
JUnit 5 + Mockito + MockMVC 사용예제 Github | https://github.com/adjh54ir/blog-codes/tree/main/spring-boot-test |
1) Assertions
💡 JUnit Assertions
- 단위 테스트에서 다양한 유형의 검사를 수행하기 위한 일련의 Assertions 메서드를 제공합니다. 이러한 어서션은 테스트되는 코드의 예상 동작을 확인하는 데 도움이 됩니다.
- 모두 import org.junit.jupiter.api.Assertions 패키지를 임포트 하여서 사용합니다.
2) Assertions Class Method
💡 해당 API 문서는 JUnit 5.0.1을 기준으로 요약 정리한 API Document입니다.
메서드 | 리턴 값 | 설명 |
fail() | <V> V | 테스트를 실패로 표시합니다. |
assertTrue() | void | 주어진 조건이 참인지 확인합니다. |
assertFalse() | void | 주어진 조건이 거짓인지 확인합니다. |
assertNull() | void | 주어진 값이 null인지 확인합니다. |
assertNotNull() | void | 주어진 값이 null이 아닌지 확인합니다. |
assertEquals() | void | 두 값이 서로 같은지 확인합니다. |
assertNotEquals() | void | 두 값이 서로 다른지 확인합니다. |
assertArrayEquals() | void | 두 배열이 서로 같은지 확인합니다. |
assertIterableEquals() | void | 두 Iterable이 서로 같은지 확인합니다. |
assertLinesMatch() | void | 두 문자열 리스트가 예상한 대로 일치하는지 확인합니다. |
assertSame() | void | 두 객체가 같은 객체인지 확인합니다. |
assertNotSame() | void | 두 객체가 다른 객체인지 확인합니다. |
assertAll() | void | 주어진 모든 테스트를 실행하고, 하나 이상의 테스트가 실패하는 경우 실패로 표시합니다. |
assertThrows() | <T extends Throwable> T | 주어진 예외가 발생하는지 확인합니다. |
assertTimeout() | void / <T> T | 주어진 시간 내에 특정 작업이 완료되는지 확인합니다. |
assertTimeoutPreemptively() | void / <T> T | 주어진 시간 내에 특정 작업이 완료되는지 확인하고, 작업을 중단시킵니다. |
3) Assertions Method 사용예시
// fail() : 테스트를 실패로 표시합니다.
fail("This test should fail");
// assertTrue()
assertTrue(5 > 2); // 이 조건은 참이므로 테스트가 통과됩니다.
// assertFalse()
assertFalse(3 < 1); // 이 조건은 거짓이므로 테스트가 통과됩니다.
// assertNull()
String name = null;
assertNull(name); // 이 값은 null이므로 테스트가 통과됩니다.
// assertNotNull()
String name = "John";
assertNotNull(name); // 이 값은 null이 아니므로 테스트가 통과됩니다.
// assertEquals()
String expected = "Hello";
String actual = someMethod();
assertEquals(expected, actual); // 이 두 값이 같으므로 테스트가 통과됩니다.
// assertNotEquals()
int expected = 5;
int actual = someMethod();
assertNotEquals(expected, actual); // 이 두 값이 다르므로 테스트가 통과됩니다.
// assertArrayEquals()
int[] expected = {1, 2, 3};
int[] actual = someMethod();
assertArrayEquals(expected, actual); // 이 두 배열이 같으므로 테스트가 통과됩니다.
// assertIterableEquals()
List<Integer> expected = Arrays.asList(1, 2, 3);
List<Integer> actual = someMethod();
assertIterableEquals(expected, actual); // 이 두 Iterable이 같으므로 테스트가 통과됩니다.
// assertLinesMatch()
List<String> expected = Arrays.asList("Hello", "World");
List<String> actual = someMethod();
assertLinesMatch(expected, actual); // 이 두 문자열 리스트가 예상한 대로 일치하므로 테스트가 통과됩니다.
// assertSame()
Object obj1 = new Object();
Object obj2 = obj1;
assertSame(obj1, obj2); // 이 두 객체가 같은 객체이므로 테스트가 통과됩니다.
// assertNotSame()
Object obj1 = new Object();
Object obj2 = new Object();
assertNotSame(obj1, obj2); // 이 두 객체가 다른 객체이므로 테스트가 통과됩니다.
// assertAll()
assertAll(
() -> assertTrue(5 > 2),
() -> assertFalse(3 < 1),
() -> assertNull(null),
() -> assertNotNull("John")
); // 모든 테스트가 통과되므로 테스트가 성공합니다.
// assertThrows()
assertThrows(NullPointerException.class, () -> {
String name = null;
name.length(); // NullPointerException이 발생해야 테스트가 통과됩니다.
});
// assertTimeout()
assertTimeout(Duration.ofSeconds(2), () -> {
// 2초 이내에 완료되어야 하는 작업
});
// assertTimeoutPreemptively()
assertTimeoutPreemptively(Duration.ofSeconds(2), () -> {
// 2초 이내에 완료되어야 하는 작업
});
오늘도 감사합니다. 😀
반응형
'Java > API Document' 카테고리의 다른 글
[Java/API] SimpleDataFormat Class API Document 읽어보기 : Java 11 (1) | 2024.01.24 |
---|---|
[Java/API] MockMvc, ResultActions, MvcResult Method API Document : Spring Framework (0) | 2023.12.16 |
[Java/API] LinkedList Method API Document : Java 11 (0) | 2023.11.18 |
[Java/API] WebClient Method API Document : Java 11 (0) | 2023.08.14 |
[Java/API] Priority Queue Method API Document : Java 11 (0) | 2023.07.20 |