반응형
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
- CSS
- 이클립스
- vscode
- 테스트자동화
- junit
- 자바문법
- Java
- ArrayList
- 문자열
- list
- js
- Eclipse
- 정규식
- math
- input
- HashMap
- 자바
- json
- javascript
- 배열
- 자바스크립트
- html
- java테스트
- string
- IntelliJ
- 단위테스트
- Array
- Visual Studio Code
- junit5
- 인텔리제이
Archives
- Today
- Total
어제 오늘 내일
[JUnit] assertNull(), assertNotNull() – null 여부 확인 본문
1. assertNull(), assertNotNull() 메소드
assertNull()과 assertNotNull() 메소드는 JUnit에서 객체의 null 여부를 검증할 때 사용하는 단정(Assertion) 메소드입니다.
값이 null인지, 혹은 null이 아닌지를 명확하게 확인할 수 있어 객체 생성, 반환값 검증, 예외 상황 처리 테스트에서 자주 사용됩니다.
JUnit5의 대표적인 메소드 정의는 다음과 같습니다.
assertNull(actual);
assertNull(actual, message);
assertNotNull(actual);
assertNotNull(actual, message);
- actual: null 여부를 검사할 객체
- message: 검사 실패 시 출력할 설명 메시지
2. assertNull() 기본 사용 예제
import static org.junit.jupiter.api.Assertions.assertNull;
import org.junit.jupiter.api.Test;
public class NullTest {
@Test
void testAssertNull() {
String value = null;
assertNull(value);
}
}
코드 설명
- 변수 value가 null이므로 assertNull(value)는 테스트를 통과합니다.
3. assertNotNull() 기본 사용 예제
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;
public class NullTest {
@Test
void testAssertNotNull() {
String value = "Hello";
assertNotNull(value);
}
}
코드 설명
- value는 null이 아니므로 assertNotNull(value)를 통과합니다.
4. 메시지를 포함한 null 검증 예제
@Test
void testWithMessage() {
String name = null;
String email = "test@example.com";
assertNull(name, "name 값은 null이어야 합니다.");
assertNotNull(email, "email 값은 null이면 안됩니다.");
}
코드 설명
- name은 null이므로 assertNull()이 성공합니다.
- email은 null이 아니므로 assertNotNull()이 성공합니다.
- 조건이 맞지 않을 경우 지정한 메시지가 표시됩니다.
5. 메소드 반환값 검증에 활용하기
class UserService {
String findUserNameById(int id) {
if (id == 0) return null;
return "User";
}
}
@Test
void testUserService() {
UserService service = new UserService();
assertNull(service.findUserNameById(0));
assertNotNull(service.findUserNameById(1));
}
코드 설명
- ID가 0일 경우 null을 반환하므로 assertNull()을 통과합니다.
- ID가 1일 경우 "User"를 반환하므로 assertNotNull()을 통과합니다.
- 메소드의 정상/예외 상황을 구분하는 데 유용합니다.
6. assertNull(), assertNotNull() 사용 시 주의할 점
6.1 null 검증 후 다른 조건 검사 시 주의해야 합니다.
null 객체에 대해 메소드를 호출하면 NullPointerException이 발생하므로
먼저 assertNotNull()으로 null 여부를 확인하는 습관이 좋습니다.
6.2 단순 존재 여부만 확인하는 테스트인지 고려해야 합니다.
값의 존재 여부만 검증하려는 테스트라면 적합하지만,
값의 내용까지 확인해야 한다면 assertEquals()와 함께 사용해야 합니다.
6.3 명확한 메시지를 작성하면 디버깅이 편리합니다.
null 상태는 디버깅 시 혼동하기 쉬운 영역이므로
메시지를 활용하면 문제 지점을 빠르게 파악할 수 있습니다.
7. 정리
assertNull()과 assertNotNull()은 객체가 null인지 여부를 검증하는 기본적인 단정 메소드입니다.
객체 생성, 메소드 반환값 검사, 예외 처리 상황 테스트에서 중요한 역할을 하며,
null 관련 문제를 예방하고 테스트 안정성을 높이는 데 필수적으로 사용됩니다.
반응형
'IT > JUnit' 카테고리의 다른 글
| [JUnit] fail() – 여기까지 오면 안 되는 경우 강제 실패 (0) | 2026.01.07 |
|---|---|
| [JUnit] assertThrows() – 예외 발생 여부 테스트 (0) | 2026.01.06 |
| [JUnit] assertTrue(), assertFalse() – 조건식이 맞는지 검사 (0) | 2026.01.05 |
| [JUnit] assertNotEquals() – 같지 않아야 하는 값 비교 (0) | 2026.01.05 |
| [JUnit] assertEquals() – 예상 값과 실제 값 비교 (0) | 2026.01.04 |
Comments
