개발/코틀린

(Test) Junit에서 isEqualTo 와 isSameAs

DinoDev 2023. 6. 17. 22:29
728x90
반응형

Kotlin에서 JUnit을 사용할 때 isEqualTo와 isSameAs 메서드의 차이점은 Java에서와 동일합니다.

isEqualTo 메서드는 두 개의 객체가 내용(content) 면에서 동일한지 확인하는 데 사용됩니다. 객체의 값(value)을 비교하기 위해 equals 메서드를 사용합니다. 예를 들어, obj1과 obj2라는 두 개의 객체가 있다면, assertThat(obj1).isEqualTo(obj2)를 사용하여 obj1이 obj2와 동일하다고 단언할 수 있습니다.

isSameAs 메서드는 반면에 두 개의 객체가 메모리 상에서 정확히 동일한 인스턴스를 참조하는지 확인합니다. 객체의 참조(reference)를 비교합니다. 예를 들어, obj1과 obj2라는 두 개의 객체가 있다면, assertThat(obj1).isSameAs(obj2)를 사용하여 obj1과 obj2가 동일한 객체 인스턴스를 참조하는지 단언할 수 있습니다.

다음은 차이점을 설명하는 간단한 예제입니다.

val str1 = "Hello"
val str2 = String("Hello")
val str3 = str1

assertThat(str1).isEqualTo(str2)   // str1과 str2의 내용이 동일하므로 통과합니다.
assertThat(str1).isSameAs(str2)    // str1과 str2는 서로 다른 인스턴스이므로 실패합니다.

assertThat(str1).isSameAs(str3)    // str1과 str3은 동일한 인스턴스를 참조하므로 통과합니다.
assertThat(str1).isEqualTo(str3)   // str1과 str3의 내용이 동일하므로 통과합니다.






728x90
반응형