3.1.2 assertThat은 명확한 값을 비교
대부분 단언은 기대하는 값과 반환된 실제 값을 비교합니다. 단지 잔고가 0보다 크다고 하기보다는 다음과 같이 명시적으로 기대하는 잔고를 단언합니다.
iloveyouboss_13/test/scratch/AssertTest.java
assertThat(account.getBalance(), equalTo(100));
assertThat() 정적 메서드는 햄크레스트 단언의 예입니다. 햄크레스트 단언의 첫 번째 인자는 실제(actual) 표현식, 즉 우리가 검증하고자 하는 값(종종 대상 시스템에 대한 메서드 호출)입니다. 두 번째 인자는 매처(matcher)입니다. 매처는 실제 값과 표현식의 결과를 비교합니다. 매처는 테스트 가독성을 크게 높여 줍니다. 마치 일반 문장처럼 왼쪽에서 오른쪽으로 읽을 수 있습니다. 예를 들어 앞의 단언문은 “계좌 잔고가 100과 같아야 한다.”라고 표현할 수 있습니다.
JUnit이 제공하는 핵심 햄크레스트 매처를 사용하려면 코드에 정적 임포트를 추가해야 합니다.
iloveyouboss_13/test/scratch/AssertTest.java
import static org.hamcrest.CoreMatchers.*; import java.io.*; import java.util.*;