간단히 말해서, 자바의 object.hashCode ()에 따른 hashCode 계약 :
- equals ()에 영향을 미치는 것이 변경되지 않는 한 해시 코드는 변경되지 않아야합니다.
- equals ()는 해시 코드가 ==임을 의미합니다.
주로 불변 데이터 객체에 관심이 있다고 가정 해 봅시다. 생성 된 정보는 절대 변경되지 않으므로 # 1이 유지되는 것으로 간주됩니다. 그것은 # 2를 남깁니다. 문제는 단순히 해시 코드 ==를 의미한다는 것을 확인하는 것입니다.
분명히, 우리는 그 집합이 사소하게 작지 않는 한 모든 가능한 데이터 객체를 테스트 할 수 없습니다. 그렇다면 일반적인 경우를 포착 할 수있는 단위 테스트를 작성하는 가장 좋은 방법은 무엇입니까?
이 클래스의 인스턴스는 불변이므로 이러한 객체를 생성하는 방법은 제한되어 있습니다. 이 단위 테스트는 가능하면 모든 것을 다루어야합니다. 내 머리 꼭대기에서 진입 점은 생성자, 역 직렬화 및 하위 클래스의 생성자입니다 (생성자 호출 문제를 줄일 수 있어야 함).
[연구를 통해 내 질문에 답하려고 노력할 것입니다. 다른 StackOverflowers의 입력은이 프로세스에 대한 환영받는 안전 메커니즘입니다.]
[다른 OO 언어에도 적용 할 수 있으므로 해당 태그를 추가하겠습니다.]