728x90
1. isSameAs() 와 isEqualTo() 와 isInstatnceOf() 비교
1) isSameAs() -> ==
isSameAs() 는 주소값을 비교하는 메서드다.
String a = "apple";
String b = a;
// 주소값이 같은지 검증
assertions.assertThat(a).isSameAs(b);
2) isEqualTo() -> equals() 메서드
isEqualTo() 는 대상의 내용 자체를 비교하는 메서드다.
String a = "apple";
String b = "apple";
// 1. 내용이 같은지 검증 -> 성공
assertions.assertThat(a).isEqualTo(b);
// 2. 주소값이 같은지 검증 -> 실패
assertions.assertThat(a).isSameAs(b);
- isEqualTo()는 equals() 메서드로 두 대상의 내용이 같은지 비교한다. 그래서 a, b는 실제로 다른 주소값을 가지고 있지만, isEqualTo()로 비교하면 테스트가 성공한다.
3) isInstatnceOf() -> instanceof 연산자
isInstanceOf() 는 해당 타입의 인스턴스인지를 비교하는 메서드다.
instanceof 연산자는 객체가 특정 클래스나 인터페이스로부터 생성된 것인지를 판별한다.
(객체 instanceof 클래스) 에서 객체가 해당 클래스 혹은 그 하위 클래스로부터 생성된 객체이면 true, 아니면 false를 반환한다.
// B extends A
A a = new A();
B b = new B();
assertThat(a).isInstanceOf(A)
assertThat(a).isInstanceOf(B) // 실패
assertThat(b).isInstanceOf(A)
assertThat(b).isInstanceOf(B)
- 인스턴스 a의 타입은 A로 B의 하위 타입이 아니므로 실패다.
[참고] https://dev-emmababy.tistory.com/55
728x90
'Java > Java 학습' 카테고리의 다른 글
[JAVA] Java14 개선된 Switch 문 (0) | 2022.08.09 |
---|---|
[JAVA] 성공 테스트 & 실패 테스트 (0) | 2022.05.16 |
[JAVA] 예외 테스트 (jUnit5의 assertThrows) (0) | 2022.04.28 |
[JAVA] JUnit5 기본 테스트 어노테이션(@Test, BeforeAll, @BeforeEach, @AfterAll, @AfterEach, @Disabled) (0) | 2022.04.28 |
[JAVA] UnitTest에서 사용하는 AssertJ의 AssertThat이란? (1) | 2022.04.28 |