반응형
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
- Array
- CSS
- input
- Eclipse
- 이클립스
- Visual Studio Code
- java테스트
- 인텔리제이
- 정규식
- javascript
- Java
- string
- ArrayList
- html
- json
- 문자열
- IntelliJ
- 테스트자동화
- HashMap
- junit
- 자바문법
- 자바
- math
- 배열
- list
- js
- vscode
- 단위테스트
- 자바스크립트
- junit5
Archives
- Today
- Total
어제 오늘 내일
[JUnit] assertNotEquals() – 같지 않아야 하는 값 비교 본문
1. assertNotEquals() 메소드
assertNotEquals() 메소드는 JUnit에서 두 값이 서로 같지 않아야 함을 검증할 때 사용하는 단정(Assertion) 메소드입니다.
예상값(expected)과 실제값(actual)이 다를 경우 테스트가 성공하며, 같을 경우 실패합니다.
JUnit5의 대표적인 메소드 정의는 다음과 같습니다.
assertNotEquals(expected, actual);
assertNotEquals(expected, actual, message);
- expected: 비교 기준이 되는 값
- actual: 테스트 결과 값
- message: 비교 실패 시 출력할 설명 메시지(선택)
2. 기본적인 assertNotEquals() 사용 예제
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import org.junit.jupiter.api.Test;
public class NumberTest {
@Test
void testNotEquals() {
int result = 10;
assertNotEquals(5, result);
}
}
코드 설명
- 실제 값 result는 10입니다.
- assertNotEquals(5, result)는 두 값이 다르므로 테스트가 성공합니다.
3. 메시지를 포함한 assertNotEquals() 사용 예제
@Test
void testWithMessage() {
int value = 3 * 3;
assertNotEquals(9, value, "값이 같으면 안됩니다.");
}
코드 설명
- 실제 계산 결과는 9이며, 예상값도 9이므로 테스트는 실패합니다.
- 실패 시 "값이 같으면 안됩니다." 메시지가 출력됩니다.
4. 문자열 비교에서의 assertNotEquals()
@Test
void testStringNotEquals() {
String text = "JUnit Test";
assertNotEquals("Test", text);
}
코드 설명
- "JUnit Test"와 "Test"는 다른 문자열이므로 테스트는 성공합니다.
- 문자열 비교에서도 정확하게 다름을 판단합니다.
5. 객체 비교에서의 assertNotEquals()
객체 비교 시 assertNotEquals()는 객체의 equals() 메소드를 사용하여 동일 여부를 판단합니다.
equals()가 재정의되어 있다면 그 기준으로 비교합니다.
class User {
String name;
User(String name) { this.name = name; }
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!(obj instanceof User)) return false;
User other = (User) obj;
return this.name.equals(other.name);
}
}
@Test
void testUserNotEquals() {
User u1 = new User("Alice");
User u2 = new User("Bob");
assertNotEquals(u1, u2);
}
코드 설명
- equals()가 이름 기준으로 재정의되어 있으므로 "Alice"와 "Bob"은 다른 사용자로 판단됩니다.
- 두 객체가 다르므로 테스트는 성공합니다.
6. assertNotEquals() 사용 시 주의할 점
6.1 expected와 actual이 같으면 테스트는 반드시 실패합니다.
테스트 논리를 작성할 때 단순히 값을 반대로 비교하는 용도로만 사용하면 의도와 다른 결과가 나올 수 있습니다.
6.2 null 비교 시 assertNotNull()을 사용할 수 있습니다.
assertNotEquals(null, value)를 사용해도 되지만,
의도를 더 명확히 하기 위해 assertNotNull()을 사용하는 것이 좋습니다.
7. 정리
assertNotEquals() 메소드는 두 값이 서로 같지 않아야 하는 상황을 검증하는 데 사용됩니다.
숫자, 문자열, 객체 등 다양한 타입에 적용할 수 있으며, 객체 비교 시 equals() 재정의 여부가 중요한 기준이 됩니다.
반응형
'IT > JUnit' 카테고리의 다른 글
| [JUnit] assertThrows() – 예외 발생 여부 테스트 (0) | 2026.01.06 |
|---|---|
| [JUnit] assertNull(), assertNotNull() – null 여부 확인 (0) | 2026.01.06 |
| [JUnit] assertTrue(), assertFalse() – 조건식이 맞는지 검사 (0) | 2026.01.05 |
| [JUnit] assertEquals() – 예상 값과 실제 값 비교 (0) | 2026.01.04 |
| [JUnit4] JUnit4 dependency 설정하기 (maven) (0) | 2023.06.18 |
Comments
