assertTrue() 호출은 전통적인 단언입니다. 불(Boolean) 표현식에 햄크레스트 매처를 사용하면 좀 더 나은 정보를 알려 주는 실패 메시지를 볼 수 있습니다.
iloveyouboss_13/test/scratch/AssertTest.java
account.deposit(50); assertThat(account.getBalance() > 0, is(true));
하지만 이것 역시 그다지 유용한 정보는 아닙니다. 어떤 사람은 이처럼 불필요한 정보를 장황하게 보여 주는 것이 우스꽝스럽다고 생각할 수도 있습니다. 차라리 단순한 assertTrue()가 더 낫습니다.
다른 햄크레스트 단언을 보겠습니다. (CoreMatchers 클래스에 있는) startsWith 매처를 사용합니다.
iloveyouboss_13/test/scratch/AssertTest.java
assertThat(account.getName(), startsWith("xyz"));
assertThat() 호출이 실패하면 다음과 같은 스택 트레이스가 나옵니다.
java.lang.AssertionError: Expected: a string starting with "xyz" but: was "an account name" at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) ...
스택 트레이스는 문제를 해결하는 데 필요한 모든 정보를 담고 있습니다.