더북(TheBook)

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)
...

스택 트레이스는 문제를 해결하는 데 필요한 모든 정보를 담고 있습니다.

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