객체의 협력을 확인하기
메서드가 돌려주는 값만으로 요구사항을 확인하기 어려운 경우가 있다. JMock는 협력 객체에 어떤 호출이 전달되어야 하는지 기대를 작성하도록 한다. 이를 통해 대상이 의존 객체와 맺는 계약을 검사할 수 있다. 내부 구현의 모든 호출을 그대로 기록하는 것과 필요한 계약을 확인하는 것은 구분한다.
기대와 매처의 조합
문자열로 메서드 이름을 적는 대신 메서드 호출 형태로 기대를 표현한다. 이 방식은 개발 도구의 자동 완성과 리팩터링 기능을 활용하기 좋다. 인자 조건에는 Hamcrest 매처를 사용할 수 있다. 호출에 반응하는 동작이나 기대 매칭 등 여러 지점도 확장할 수 있지만 구성이 복잡해지면 검사 의도를 읽기 어려워진다.
연동과 공개 API
JUnit 등 실행기와의 연결은 별도의 연동 지점으로 다룬다. 사용하는 실행기 세대에 맞는 구성을 선택하고 기대 검증이 실제로 수행되는지 확인한다. 공개 패키지와 내부 구현 패키지는 호환성 보장이 다르므로 내부 타입에 의존하는 확장을 피하는 편이 좋다. 대역으로 확인한 상호작용은 실제 외부 시스템의 동작까지 보장하지 않는다.