跟踪使用Sinon / Mocha调用方法的次数

时间:2018-01-29 19:53:27

标签: node.js promise async-await mocha sinon

我正在使用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可以帮助我弄清楚如何做到这一点我会非常感激。

1 个答案:

答案 0 :(得分:1)

Sinon spies完全解决了这个问题。我做了一个我的方法的间谍来包装它,我所要做的就是检查tryAtMostSpy.callCount。文档很容易:)