0
是否有任何方式存根require
在node js
使用sinon.js
?存根要求在节点js
例如,我有一些文件:
const myModule = require('awesomeModule');
而且我想在我的测试,存根:
myRequireStub.withArgs('awesomModule').throws(new Error('some error'));
是否有任何方式存根require
在node js
使用sinon.js
?存根要求在节点js
例如,我有一些文件:
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'));