Node.js 使用jest.setTimeout的替代方法
目前,我在NodeJS/Express/MongoDB应用程序中配置了一些测试(Jest+Supertest)。 根据我的经验,当服务器与MongoDB成功连接时,可能会有很大的不同(可能需要几秒钟) 我的测试失败,因为它在5000毫秒后超时(我相信这是默认超时) 通过在测试的第一部分中定义一个Node.js 使用jest.setTimeout的替代方法,node.js,unit-testing,jestjs,integration-testing,Node.js,Unit Testing,Jestjs,Integration Testing,目前,我在NodeJS/Express/MongoDB应用程序中配置了一些测试(Jest+Supertest)。 根据我的经验,当服务器与MongoDB成功连接时,可能会有很大的不同(可能需要几秒钟) 我的测试失败,因为它在5000毫秒后超时(我相信这是默认超时) 通过在测试的第一部分中定义一个jest.setTimeout(15000),我可以绕过这个问题,这一切看起来如下: test('POST' + endpointUrl, async () => { jest.setTim
jest.setTimeout(15000)
,我可以绕过这个问题,这一切看起来如下:
test('POST' + endpointUrl, async () => {
jest.setTimeout(15000);
const response = await request(app)
.post(endpointUrl)
.send(newTodo);
ASSERTIONS
});
我想知道这是否是解决我的问题的正确方法。如果您有一个异步函数,必须等待响应,只需使用
done
关键字作为测试回调参数
test('POST'+endpointUrl,异步(完成)=>{
常量响应=等待请求(应用程序)
.post(端点URL)
.send(newTodo);
断言
完成();
});
或:
test('POST'+endpointUrl,done=>{
请求(应用程序)
.post(端点URL)
.send(newTodo)
。然后(res=>{
断言
完成();
})
.catch(错误=>{
fail(`It必须完成,但由于:${error}`而被捕获);
})
});
有关更多信息,请查看此主题: