2016-09-26 3 views
0

sinon.js을 사용하여 requirenode js에 스터핑 할 수 있습니까? 예를 들어노드 j에서 스텁 요구

, 난 일부 파일이 있습니다

const myModule = require('awesomeModule'); 

을 그리고 난 내 테스트에서 같은 스텁 갖고 싶어 :

myRequireStub.withArgs('awesomModule').throws(new Error('some error')); 

답변

0

이 작동 그러나

const sinon = require('sinon'); 

let myRequireStub = sinon.stub(module, 'require'); 

myRequireStub.withArgs('awesomeModule').throws(new Error('some error')); 

const myModule = require('awesomeModule'); 
// Error: some error 

에 의해을 stubbing require 당신은 꽤 많은 모듈을로드하는 기능을 망칠 것입니다. 그래서 이것이 얼마나 유용한 지 확신 할 수 없습니다.

0

용도에 따라 mockery 또는 mock-require과 같은 라이브러리를 사용하는 것이 가장 좋습니다. 그러나 나는 스텁하는 방법이 필요했습니다. 모두이 필요합니다. 따라서 이것은 내가 생각해 낸 것입니다.

const _module = require('module'); 

let require = sinon.stub(_module, '_load'); 

//return a function that returns a function 
require.returns(() => { return() => {}; }); 

//run code that calls require 

require.restore(); 

assert(require.calledWith('module-name')); 
관련 문제