我可以在Mocha中断言请求超时吗?

时间:2019-03-13 17:16:24

标签: javascript testing mocha chai

我正在测试/确认一些数据库锁内容,并且我想站起来进行一个测试,该测试将确认如果我锁定行,请求(“ request-promise”库)将挂起。

一些无效的想法是

request(options).catch((response) => {})

assert.throws(fn, Error, "timeout")

我继续收到此消息:Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

是否可以断言此超时发生?

2 个答案:

答案 0 :(得分:2)

在Mocha测试(或describebefore等)中,this.timeout(msec)将更改测试可以运行多长时间,然后Mocha会认为测试失败。

查看Mocha documentation以获得更多信息。

答案 1 :(得分:0)

我的解决方案是将超时时间设置为预期超时时间的一半。

setTimeout(function(){ done(); })

然后在我的端点中答应我收到的答复

done(new Error("Timeout should have happened.");

这样,如果发生超时,将调用done。如果没有发生,那么done会被调用而出错。