我正在使用Mocha / Sinon编写测试,以确保我创建的async tryAtMost
函数调用Promise并且只重试该{1}}次承诺。
我的X
功能如下:
tryAtMost
我的Mocha测试为我的 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);
}
});
}
库创建了一个存根,我可以强制它返回我想要的任何状态代码。但是,我希望我的测试能够验证promise
仅被调用tryAtMost
次。如果有人更熟悉Mocha / Sinon可以帮助我弄清楚如何做到这一点我会非常感激。