Nock: Node.js HTTP 모킹 라이브러리

Source

  • Evernote/IFTTT Feedly/nock Node.js HTTP mocking 라이브러리.md

Summary

Nock은 Node.js 환경에서 외부 HTTP 요청을 모킹(Mocking)하여 테스트할 수 있는 라이브러리입니다. 외부 API 연동 시 실제 서버 의존성을 제거하고, 테스트 코드에서 원하는 응답을 반환하도록 제어하여 비즈니스 로직 테스트의 안정성을 높입니다. 직관적인 체이닝 API를 제공하며, filteringPath 등을 통해 쿼리 스트링이나 요청 바디를 유연하게 필터링할 수 있습니다. 복잡한 모킹이 필요하지 않은 경우 Sinon 대비 가볍고 사용하기 편한 장점이 있습니다.

Key Points

  • Node.js에서 외부 HTTP 요청을 모킹하여 테스트 의존성을 격리하는 데 사용
  • Sinon 등 다른 라이브러리에 비해 HTTP 모킹에 특화되어 있어 사용이 직관적이고 가벼움
  • 호스트, 메서드(GET/POST 등), 경로를 체이닝 방식으로 지정하고 reply로 응답 데이터 설정
  • filteringPath, filteringScope, filteringRequestBody를 통해 동적인 쿼리나 바디를 정규식으로 필터링 가능
  • 테스트 전 before에서 모킹 설정 후, after에서 nock.restore()로 초기화하여 다른 테스트에 영향 주지 않음