매처로 조건 설명하기
단순한 동등 비교만으로 표현하기 어려운 기대가 있다. Hamcrest는 문자열의 일부나 컬렉션의 원소, 수치 범위처럼 관찰하려는 성질을 매처로 나타낸다. 실제 값과 매처를 연결하면 해당 조건을 만족하는지 확인할 수 있다. 검사에 필요한 측면을 골라 표현하는 것이 핵심이다.
조건의 조합과 재사용
여러 조건을 모두 만족하거나 하나라도 만족하도록 조합하고 부정을 표현할 수 있다. 반복되는 도메인 조건은 사용자 정의 매처로 묶어 재사용한다. 다만 너무 큰 매처 안에 여러 책임을 숨기면 실패 원인을 읽기 어려워질 수 있다. 어떤 기대가 어긋났는지 드러내는 설명도 함께 설계한다.
실행기와의 관계
Hamcrest는 테스트의 발견과 실행을 관리하는 프레임워크 자체가 아니다. JUnit이나 TestNG 같은 도구와 함께 사용하고 기존 단언 방식과 공존할 수 있다. 실제로 같은 객체인지와 값이 동등한지처럼 조건의 의미가 다른 매처도 구분한다. 지나치게 느슨한 조건이나 모든 구현 세부사항을 고정하는 조건 모두 검사의 가치를 떨어뜨릴 수 있다.
관련 문서
AssertJ / JUnit / TestNG / REST Assured