계약을 만드는 쪽과 지키는 쪽
서비스를 호출하는 소비자는 필요한 요청과 기대 응답을 정의한다. 소비자 검사는 대역 제공자를 통해 그 기대에 맞게 코드를 사용하는지 확인하고 계약 자료를 만든다. 실제 제공자 쪽에서는 이 자료로 응답을 검증한다. 소비자 검사만 통과했다고 실제 제공자와 호환된다고 결론 내릴 수는 없다.
언어와 도구의 연결
자바와 코틀린, Groovy 등 JVM 환경의 여러 작성 방식과 테스트 프레임워크 연동을 제공한다. 제공자 검증도 빌드 도구나 테스트에서 구성할 수 있다. 계약 파일의 명세 버전과 구현 지원 범위를 맞춰야 한다. 서로 다른 언어 구현이라도 지원하는 계약 형식과 기능이 맞는지 확인한다.
계약 검사로 다루지 않는 것
계약에 기록하지 않은 동작이나 전체 업무 흐름은 별도 검사 대상이다. 메시지 상호작용을 다루는 기능도 있지만 실제 브로커의 모든 전달 특성을 재현하는 것은 아니다. 계약의 공유와 버전 선택을 관리해 어떤 조합을 검증했는지 남긴다. 현재 저장소에는 익명 사용 통계 수집과 비활성화 설정에 관한 안내도 있어 도입 환경에 맞춰 확인한다.
관련 문서
Pact JS / REST Assured / WireMock / JUnit