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 문을 몇 개 넣거나 디버거를 열어야 합니다.