위키득계정 ↗
기술

Pact JS

Pact JS기술
분류
API 계약 시험 라이브러리
환경
JavaScript와 Node.js
시험 구분
소비자 시험과 제공자 검증
연계 도구
Pact Broker
Pact JS는 JavaScript 환경에서 소비자와 제공자 사이의 API 계약을 시험하는 라이브러리다. 소비자의 기대를 계약으로 기록하고 제공자의 구현이 이를 충족하는지 확인한다.

소비자가 만드는 계약

소비자는 API에 어떤 요청을 보내고 어떤 응답을 기대하는지 시험으로 표현한다. 이 과정에서 모의 서버를 사용해 클라이언트의 동작을 확인하고 공유 가능한 계약을 만든다. 응답을 임의로 고정하는 데서 그치지 않고 상대 구현과 대조할 기준을 남긴다.

제공자의 검증

제공자는 전달받은 계약을 기준으로 구현이 기대한 상호작용을 만족하는지 검증한다. 한쪽의 변경이 다른 쪽과 맞지 않는 상황을 찾는 데 쓰인다. 계약에 포함되지 않은 기능까지 자동으로 검증되는 것은 아니므로 실제 사용 관계를 반영해 시험을 작성한다.

도구의 범위

HTTP 기반 통신뿐 아니라 이벤트 기반 시스템의 시험도 다룬다. 매칭 규칙을 사용하면 불필요하게 특정 값에 고정된 기대 조건을 줄일 수 있다. 계약 시험은 서비스 사이의 약속을 확인하지만 실제 운영 환경의 연결과 전체 사용자 흐름을 모두 대신하지는 않는다.

관련 문서

WireMock / Schemathesis / Newman / HTTP