위키득계정 ↗
기술

Hamcrest

Hamcrest기술
분야
조건 매칭과 단언
대표 구현
Java Hamcrest
구성 단위
매처 객체
조합
논리 조건과 자료형 조건
Hamcrest는 값이 만족해야 하는 조건을 매처 객체로 표현하는 라이브러리 계열이다. 자바 구현에서는 여러 매처를 조합해 읽기 쉬운 테스트 조건과 실패 설명을 구성한다.

매처로 조건 설명하기

단순한 동등 비교만으로 표현하기 어려운 기대가 있다. Hamcrest는 문자열의 일부나 컬렉션의 원소, 수치 범위처럼 관찰하려는 성질을 매처로 나타낸다. 실제 값과 매처를 연결하면 해당 조건을 만족하는지 확인할 수 있다. 검사에 필요한 측면을 골라 표현하는 것이 핵심이다.

조건의 조합과 재사용

여러 조건을 모두 만족하거나 하나라도 만족하도록 조합하고 부정을 표현할 수 있다. 반복되는 도메인 조건은 사용자 정의 매처로 묶어 재사용한다. 다만 너무 큰 매처 안에 여러 책임을 숨기면 실패 원인을 읽기 어려워질 수 있다. 어떤 기대가 어긋났는지 드러내는 설명도 함께 설계한다.

실행기와의 관계

Hamcrest는 테스트의 발견과 실행을 관리하는 프레임워크 자체가 아니다. JUnit이나 TestNG 같은 도구와 함께 사용하고 기존 단언 방식과 공존할 수 있다. 실제로 같은 객체인지와 값이 동등한지처럼 조건의 의미가 다른 매처도 구분한다. 지나치게 느슨한 조건이나 모든 구현 세부사항을 고정하는 조건 모두 검사의 가치를 떨어뜨릴 수 있다.

관련 문서

AssertJ / JUnit / TestNG / REST Assured