【发布时间】:2018-08-07 10:01:03
【问题描述】:
我需要模拟 'mkdirp-promise' 节点模块,它公开如下构造函数
mkdirpPromise(dirPath)
.then(() => {
console.log('ABCDEFGH');
resolve(dirPath);
})
.catch((error) => {
console.log('HeABCDEFGHre');
const details = error.message;
const err = customError.failed_create_downloads_directory()
.withDetails(details);
reject(err);
});
我第一次能够使用 proxiquire 模拟它,如下所示:-
let mkdirpPromiseMock = sinon.stub().rejects();
const sthreeDownloadMock =
proxyquire('./../../modules/sThreeDownload', {
joi: joiMock,
fs: fsMock,
'@monotype/core-error': {
errors: {
ApiError: customErrorMock,
},
},
'aws-sdk': awsSDK,
'mkdirp-promise': mkdirpPromiseMock,
path: pathMock,
});
现在我想用
在第二个测试用例中覆盖 mkdirpPromiseMockmkdirpPromiseMock = sinon.stub().resolves();
我无法做到。任何帮助表示赞赏。
【问题讨论】:
-
这应该可以正常工作,但“我无法做到”并没有真正提供我们可以帮助您的任何细节。一个可运行并显示问题的简化案例会有所帮助
标签: node.js sinon stub sinon-chai proxyquire