영호
[JUnit5] isSameAs, isEqualTo 차이 본문
isEqualTo
isEqualTo메서드는 Java의 equals() 메서드와 같습니다.
isSameAs
isSameAs메서드는 Java의 ==연산과 같기 때문에, 객체의 주소 값을 비교해줍니다.
==, equals 비교
Code
@Test
@DisplayName("isEqualTo")
void equalToTest() {
String a = "test";
String b = new String("test");
Assertions.assertThat(a).isEqualTo(b);
}
@Test
@DisplayName("isSameAs")
void SameAsTest() {
String a = "test";
String b = new String("test");
Assertions.assertThat(a).isSameAs(b);
}
- String literal과 new String연산을 이용해 내부 속성 값은 같지만 참조 주소 값은 다른 String 객체 a, b를 생성했습니다.
실행결과
- 내부 값이 같은 a, b에 대해 equals() 메서드와 같은 isEqualTo는 테스트는 통과했습니다.
- 그러나, a, b는 주소 값이 다르기 때문에 객체의 주소 값을 비교하는 isSameAs는 테스트를 통과하지 못했습니다.
'Test > JUnit' 카테고리의 다른 글
[Junit] 병렬 실행을 통해 빌드 시간 단축해보기 (0) | 2023.11.12 |
---|---|
[JUnit] JUnit5 예외 테스트코드 작성(assertThrows) (0) | 2022.05.16 |
[JUnit] JUnit, Assertj 프로젝트 생성 with 인텔리제이 (0) | 2022.05.15 |
[JUnit] JUnit, Assertj 설정, 테스트코드 작성 (0) | 2022.05.15 |
Comments