是否可以使用require
在node js
中隐藏sinon.js
?
例如,我有一些文件:
const myModule = require('awesomeModule');
我希望在我的测试中有这样的存根:
myRequireStub.withArgs('awesomModule').throws(new Error('some error'));
答案 0 :(得分:0)
这有效:
<meta http-equiv="pragma" content="no-cache" >
<meta http-equiv="cache-control" content="no-cache" >
然而,通过对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
进行存根,你几乎会破坏加载模块的能力,所以我不确定这是多么有用。
答案 1 :(得分: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'));