sinon.js
을 사용하여 require
을 node js
에 스터핑 할 수 있습니까? 예를 들어노드 j에서 스텁 요구
, 난 일부 파일이 있습니다
const myModule = require('awesomeModule');
을 그리고 난 내 테스트에서 같은 스텁 갖고 싶어 :
myRequireStub.withArgs('awesomModule').throws(new Error('some error'));
sinon.js
을 사용하여 require
을 node js
에 스터핑 할 수 있습니까? 예를 들어노드 j에서 스텁 요구
, 난 일부 파일이 있습니다
const myModule = require('awesomeModule');
을 그리고 난 내 테스트에서 같은 스텁 갖고 싶어 :
myRequireStub.withArgs('awesomModule').throws(new Error('some error'));
이 작동 그러나
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
당신은 꽤 많은 모듈을로드하는 기능을 망칠 것입니다. 그래서 이것이 얼마나 유용한 지 확신 할 수 없습니다.
용도에 따라 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'));