위키득계정 ↗
기술

Nock

Nock기술
분류
HTTP 모킹 및 기대 조건 라이브러리
사용 환경
Node.js
요청 조건
호스트와 경로 및 본문
응답 제어
반복 횟수와 지연 및 오류
Nock은 Node.js에서 HTTP 요청을 가로채 정해진 응답을 제공하고 요청의 발생 여부를 확인하는 시험 라이브러리다. 외부 API에 의존하는 모듈을 분리해 시험할 때 활용한다.

요청 가로채기

Node.js의 HTTP 요청 기능을 대체해 지정한 조건에 맞는 요청에 응답한다. 호스트, 경로, 쿼리와 본문 등을 비교할 수 있다. 실제 서버를 별도로 실행하는 방식과 달리 시험 프로세스 안에서 의존 통신을 제어한다.

소비되는 응답 정의

기본적인 인터셉터는 한 번 사용하면 목록에서 제거된다. 같은 주소를 여러 번 호출할 때에는 필요한 정의를 준비하거나 반복 설정을 사용한다. 예상보다 많은 요청이 발생하면 일치하는 정의가 없어 오류가 날 수 있으므로 호출 횟수도 시험의 일부가 된다.

검증과 정리

남아 있는 기대 조건을 확인하거나 정의를 정리하고 실제 네트워크 요청 허용 범위를 조절할 수 있다. 시험 사이에 설정이 남으면 이후 결과에 영향을 줄 수 있다. 요청 라이브러리와 모듈 로딩 방식에 따른 가로채기 제약도 확인해야 한다.

관련 문서

VCR Ruby 라이브러리 / Mock Service Worker / WireMock / HTTP