gpt4 book ai didi

javascript - 如何在 Promise 中实现回调以使用 Mocha 和 Sinon 进行测试?

转载 作者:行者123 更新时间:2023-12-03 05:44:06 28 4
gpt4 key购买 nike

这是我要测试的功能:

write(filename, content, theme) {
return new Promise((resolve, reject) => {
let filePath = path.resolve(this.config.output.path, this.defineFilename(filename, theme, content));
fs.writeFile(filePath, content, e => {
if (e != null) reject(e);
this.addToManifest(filename, filePath, theme);
resolve(filePath);
});
});
}

这是我到目前为止所得到的,但我在理解中遗漏了一些东西。我不明白在测试中要在回调中放入什么。

        it('should reject the promise if there is an error', () => {
const sandbox = sinon.sandbox.create();
var expectedError = function(e) {

};
sandbox.stub(fs, 'writeFile', (filePath, content, expectedError) => {

});

sandbox.stub.onCall(0).returns('Hello');

return instance.write(filename, content, theme).then((data) => {
console.log('should not get to this line');
expect(data).to.not.be.ok;
sandbox.restore();
}).catch((err) => {
expect(err).to.be.an('error');
sandbox.restore();
});
});

查找带有 sinon.js 示例的文档也很具有挑战性。有什么建议吗?感谢您的帮助!

最佳答案

我认为,要模拟 writeFile 中的错误,应该是:

sandbox.stub(fs, 'writeFile', (filePath, content, callback) => {
callback(new Error())
});

关于javascript - 如何在 Promise 中实现回调以使用 Mocha 和 Sinon 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403327/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com