더북(TheBook)

equalTo 매처에는 어떤 자바 인스턴스나 기본형 값이라도 넣을 수 있습니다. 여러분이 생각한 대로 equalTo 매처는 비교 기준으로 equals() 메서드를 사용합니다. 자바 기본형은 객체형으로 오토박싱되기 때문에 어떤 타입도 비교할 수 있습니다.

일반적인 단언보다 햄크레스트 단언이 실패할 경우에 오류 메시지에서 더 많은 정보를 알 수 있습니다. 앞의 예에서 account.getBalance() 기댓값은 100입니다. 그 대신 101이 반환된다면 오류 메시지는 다음과 같습니다.

java.lang.AssertionError:
Expected: <100>
  but: was <101>
      at org.hamcrest.MatcherAssert.assertThat(MatcherAssert
            .java:20)
...

assertTrue()와는 다릅니다. 실패하면 다음과 같은 스택 트레이스를 출력합니다.

java.lang.AssertionError
  at org.junit.Assert.fail(Assert.java:86)
...

내용을 보았을 때 그다지 유용한 스택 트레이스는 아닙니다. 테스트 코드를 좀 더 분석하여 무엇이 문제인지 찾아보아야 합니다. 아마도 System.out.println 문을 몇 개 넣거나 디버거를 열어야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.