영호

[JUnit5] isSameAs, isEqualTo 차이 본문

Test/JUnit

[JUnit5] isSameAs, isEqualTo 차이

0h0 2022. 6. 13. 14:23

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를 생성했습니다.

실행결과

result
result

  • 내부 값이 같은 a, b에 대해 equals() 메서드와 같은 isEqualTo는 테스트는 통과했습니다.
  • 그러나, a, b는 주소 값이 다르기 때문에 객체의 주소 값을 비교하는 isSameAs는 테스트를 통과하지 못했습니다.
Comments