컨트롤러가 처리하는 Express 루트가 있습니다. 컨트롤러는 서비스를 사용하며 서비스는 저장소를 사용하여 데이터 소스와 통신합니다.Typescript/Node.js - 통합 테스트를 위해 전이 의존성을 조롱하는 방법?
내가 그 길을 테스트 Supertest를 사용하여 통합 테스트를 만들려는 :
test -> my Express app -> controller -> service -> repository -> data source
내 문제는 내가 테스트를 실행, 모의 저장소/데이터 소스에 필요합니다! 실제 데이터 소스에서 오는 것처럼 일부 값을 하드 코딩하고 싶습니다. 내 옵션은 무엇입니까?
자바 세계에서 나는 스프링이나 Guice와의 의존성 삽입을 사용하고 있으며 저장소를 위와 같은 방법으로 대체 할 것입니다. Typescript/Node.js 세계에서 그런 조롱을 얻기위한 패턴은 무엇입니까?
평범한 자바 스크립트를 사용하면 Proxyquire
및 Globally override require 기능을 사용하여 테스트 자체에서 저장소를 조롱 할 수 있다고 생각합니다. 하지만 Typescript가 잘 작동하는지 잘 모르겠습니다.
따라서 Typescript와 Node.js를 사용하여 테스트 파일 내에서 "깊은"구성 요소 (전이 종속성)를 조롱하는 권장 방법은 무엇입니까?
를 사용합니다 알고, 테스트를 실행 : // github.com/jaredhanson/electrolyte) 의존성 주입/IoC를 수행합니다. 'IoC.use (..)'함수를 사용하여 역순으로 검색 할 폴더를 설정합니다. 따라서 테스트 용 부트 스트랩 파일에서 내 모의 폴더를 추가하여 맨 먼저 보이게하고 모의 데이터 소스를 해결합니다 내 다른 폴더 또는 노드 모듈의 데이터 소스 대신 –