gpt4 book ai didi

node.js - 跟踪方法被 Sinon/Mocha 调用了多少次

转载 作者:搜寻专家 更新时间:2023-11-01 00:36:54 24 4
gpt4 key购买 nike

我正在使用 Mocha/Sinon 编写测试以确保我创建的 async tryAtMost 函数正在调用 Promise 并且仅重试该 promise X 次.

我的 tryAtMost 函数如下所示:

  async tryAtMost(options, promise, maxRetries, retryInterval = 0) {
return new Promise(async (resolve, reject) => {
try {
const res = await promise(options);
if (res.statusCode == 200) {
return resolve(res);
} else {
if (maxRetries > 0) {
setTimeout(async () => {
return await this.tryAtMost(options, promise, maxRetries - 1, retryInterval);
}, retryInterval);
} else {
return reject('Ran out of retries, failing.');
}
}
} catch (err) {
return reject(err);
}
});
}

我的 Mocha 测试为我的 promise 库创建了一个 stub ,我可以强制它返回我想要的任何状态代码。但是,我希望我的测试能够验证 tryAtMost 仅被调用 maxRetries + 1 次。如果有人更熟悉 Mocha/Sinon 可以帮助我弄清楚如何做到这一点,我将不胜感激。

最佳答案

Sinon spies为我完美解决了这个问题。我监视了我的方法来包装它,我所要做的就是检查 tryAtMostSpy.callCount。文档使它变得非常简单:)

关于node.js - 跟踪方法被 Sinon/Mocha 调用了多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48508964/

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