동등성 계약이 중요한 이유
객체가 같다고 판단하는 기준과 해시 값의 관계가 어긋나면 컬렉션에서 예상하지 못한 결과가 생길 수 있다. EqualsVerifier는 클래스의 두 메서드를 함께 검사해 이러한 계약 위반을 찾도록 돕는다. 반환값 한두 개만 손으로 비교하는 테스트보다 다양한 조건을 점검하는 용도로 사용한다.
엄격한 검사와 설정
라이브러리는 단순한 계약 확인을 넘어 엄격한 설계 기대를 적용할 수 있다. 완화된 검사 방식도 제공하지만 오류 메시지를 없애기 위해 무조건 느슨하게 바꾸는 것은 바람직하지 않다. 어떤 조건이 지적되었는지 이해하고 클래스의 의도와 맞는 설정인지 판단한다. 사용하는 자료형과 라이브러리 버전에 따른 지원 범위도 확인한다.
검사가 정하지 않는 것
어떤 필드를 같음의 기준으로 삼아야 하는지는 업무 규칙에 속한다. 계약 검사를 통과해도 그 기준이 요구사항에 맞지 않을 수 있다. 도메인에서 같은 것으로 취급해야 하는 사례와 다른 것으로 남겨야 하는 사례는 별도로 확인한다. 단위 검사에 결합해 변경 때마다 계약과 의미를 함께 검토하는 방식이 유용하다.