proxyquire: Node.js require 의존성 오버라이드 라이브러리
Source
Evernote/IFTTT Feedly/proxyquire Node.js의 require 의존성을 오버라이드할 수 있는 라이브러리.md
Summary
Node.js 테스트 시 require 모듈의 캐싱 문제와 외부 의존성(예: 랜덤 값 생성)으로 인한 테스트 불안정성을 해결하기 위해 proxyquire를 사용할 수 있다. proxyquire는 특정 모듈의 require 경로를 스텁(stub) 객체로 대체하여 의존성을 격리한다. 이를 통해 테스트 대상 로직만 검증할 수 있으며, 명시적으로 오버라이드하지 않은 모듈 함수는 원본을 그대로 사용한다. 테스트 간 격리가 보장되어 다른 테스트에 영향을 주지 않는다.
Key Points
- Node.js의
require캐싱으로 인해 의존성 조작 시 테스트 간 영향이 발생할 수 있음 - proxyquire는 테스트 시 특정 모듈의
require를 프락시하여 스텁 객체로 대체 가능 - 두 번째 인자로
{ '경로': 스텁객체 }형식으로 의존성 오버라이드 설정 - 오버라이드하지 않은 함수/모듈은 원본 모듈의 기능을 그대로 사용
- 테스트 격리성 보장으로 유닛 테스트의 신뢰도 향상