如何解决如何使用 Sinon & Chai 测试延迟后重试的函数?
async function getIp(retry=0) {
try {
return await http.get()
} catch (e) {
if (retry >= MAX_RETRIES) { throw e }
await setTimeoutAsync(RETRY_INTERVAL)
return await getIp(retry + 1)
}
}
测试函数存根如下:
let clock = sinon.usefaketimers()
let tick = () => { clock.tick(501) }
const fakeClient = sinon.stub().onFirstCall().rejects().callsFake(tick)
.onSecondCall().rejects().callsFake(tick)
.onThirdCall().rejects().callsFake(tick)
.returns(testIp)
程序卡在第一个 await setTimeoutAsync(RETRY_INTERVAL
) .
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。