gpt4 book ai didi

reactjs - 超时 - 在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调

转载 作者:行者123 更新时间:2023-12-05 07:29:32 29 4
gpt4 key购买 nike

我正在使用 jest 测试用户功能(注册和登录)的 API。

测试代码:

const request = require('supertest');
const app = require('../../app');

describe('Test User Functionality', () => {
test('User should be able to login', async done => {
const response = await request(app)
.post('/api/users/login')
.send({
email: 'test@test.com',
password: 'welcome1',
})
.expect(200);
done();
//expect(response.statusCode).toBe(200);
});
test('User should be able to signup', async done => {
const response = await request(app)
.post('/api/users/signup')
.send({
username: 'testuser',
email: 'test@test1.com',
password: 'welcome1',
})
.expect(200);
done();
//expect(response.statusCode).toBe(200);
});
});

如果我有单个测试,它工作正常,但在 describe 中有多个测试,它显示超时错误。

错误截图如下:

enter image description here

我尝试添加超时,交换测试但仍然没有成功。

请大家帮忙!

最佳答案

我在使用异步请求测试我的 React 组件时遇到了同样的问题。

发生这种情况是因为您没有正确完成请求。

你可以很容易地解决这个问题。

选项 1:将 done 作为 expect 函数调用的第二个参数,如下所示。

const response = await request(app)
.post('/api/users/signup')
.send({
username: 'testuser',
email: 'test@test1.com',
password: 'welcome1',
})
.expect(200, done);

选项2:使用end方法

const response = await request(app)
.post('/api/users/signup')
.send({
username: 'testuser',
email: 'test@test1.com',
password: 'welcome1',
})
.expect(200)
.end((err, res) => {
// do anything you want!
})

或者您可以查看文档( https://github.com/visionmedia/supertest#readme )!

关于reactjs - 超时 - 在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52680596/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com