it('accesses the network', done => {
this.timeout(500); // will not work
// *this* binding refers to parent function scope in fat arrow functions!
// i.e. the *this* object of the describe function
done();
});
编辑:失败原因:
正如@atoth在评论中提到的,fat arrow 函数没有自己的 this 绑定。因此,it 函数不可能绑定到回调的 this 并提供 timeout 函数。
describe("When in a long running test", () => {
it("Should not time out with 2000ms", async () => {
let service = new SomeService();
let result = await service.callToLongRunningProcess();
expect(result).to.be.true;
}).timeout(10000); // Custom Timeout
});
8条答案
按热度按时间sq1bmfud1#
给你:http://mochajs.org/#test-level
对于箭头功能,使用如下:
8wtpewkr2#
如果你想使用es6箭头函数,你可以在
it
定义的末尾添加一个.timeout(ms)
:至少这在Typescript中是有效的。
3gtaxfhh3#
使用ES 2015胖箭头语法时要小心:
将失败:
编辑:失败原因:
正如@atoth在评论中提到的,fat arrow 函数没有自己的 this 绑定。因此,it 函数不可能绑定到回调的 this 并提供 timeout 函数。
ippsafx74#
如果你在NodeJS中使用,那么你可以在package.json中设置超时
然后你可以使用npm运行如下:
ocebsuys5#
从命令行:
nhjlsmyf6#
你也可以考虑采用不同的方法,用stub或mock对象代替对网络资源的调用,使用Sinon,你可以将应用从网络服务中分离出来,集中精力进行开发。
igetnqfo7#
对于
Express
上的测试导航:在该示例中,测试时间为4000(4s)。
注意:
setTimeout(done, 3500)
是次要的,因为done
在测试期间被调用,但clearTimeout(timeOut)
在所有这些时间都被避免使用。iyr7buue8#
这对我很有效!之前找不到任何东西让它工作()