2017-03-02 2 views
0

나는 hapi의 실험실 + 코드 테스트 프레임 워크를 사용하고 있습니다. 전역 요구 기능을 재정의해야합니다. 내가 조롱 거리를 사용하고 있지만 행운없이 수동으로 무시하려고했습니다. 랩은 글로벌 요구 사항 대신 특수 요구 기능이 제공되는 샌드 박스 환경에서 모든 코드를 실행합니다. 랩 프레임 워크에서 전역 필수 기능을 올바르게 재정의하려면 어떻게해야합니까?오버라이드 랩 테스트 프레임 워크에서 글로벌 필요

미리 감사드립니다.

답변

0

proxyquire을 사용하여 끝났습니다.이 모듈은 모든 전역을 만들거나 재정의하는 대신 다른 모듈에서 필요로하는 모듈을 조롱하는 명확하고 선언적인 방법을 제공합니다. 기본적으로 테스트 할 모듈을 요구하려면 일반 요구 사항 대신 사용하는 요구 기능을 만듭니다. 그런 다음, 그 모듈이 여러분이 모의이라고 선언 한 것을 요구할 때, 래핑 요구는 원래의 패키지 대신 모의를 제공 할 것입니다. 부분 모형을 정의 할 수있는 이점이 있으므로 모형으로 조롱 된 메소드가있는 프록시를 리턴하고 나머지 메소드는 원래 패키지로 전달됩니다. 여기

은 사용 예를

// Mockups 
const ProxyQuire = require('proxyquire'); 
const mockupPaths = { 
    'mongodb': require('./__mocks__/mongo'), 
    'fs': { 
     readFileSync(path) { 

      if (path !== 'PATH/TO/CERTS') { 
       return Fs.readFileSync(path); 
      } 
      return 'A VERY LONG STRING THAT LOOKS LIKE A CERTIFICATE!!'; 
     } 
    } 
}; 

// What we want to test 

const Connect = ProxyQuire('../src/db-connect.js', mockupPaths); 
입니다