超测+express setup导致超时错误
Supertest + express setup cause timeout error
我在 server.test.js
上进行了简单设置
import 'regenerator-runtime/runtime';
const request = require('supertest');
const express = require("express")
const app = express();
app.get('/user', function(req, res) {
res.status(200).json({ name: 'john' });
});
describe('GET /user', function() {
it('responds with json', async function(done) {
const response = await request(app)
.get('/user')
expect(response.status).toBe(201)
})
})
npx jest
并接收 thrown: "Exceeded timeout of 5000 ms for a test.,
增加超时无济于事 jest.config.js 到 testTimeout: 20000,它等待 20s 并且也失败了
为什么 express 应用从 superset 开始?我使用了官方 README
中的示例
尝试从测试回调中删除 done
:
it('responds with json', async function() {
const response = await request(app)
.get('/user')
expect(response.status).toBe(201)
})
Jest 可能正在等待被调用。
通常建议您使用 async
函数或 done
。如果您将它们混合使用,Jest 通常会发出警告,不知道为什么在这个设置中它不会这样做。
或者您可以尝试在测试结束时调用 done()
。
您应该预料到测试会失败,因为发布的状态是 200
而您正在检查 201
。
我在 server.test.js
上进行了简单设置import 'regenerator-runtime/runtime';
const request = require('supertest');
const express = require("express")
const app = express();
app.get('/user', function(req, res) {
res.status(200).json({ name: 'john' });
});
describe('GET /user', function() {
it('responds with json', async function(done) {
const response = await request(app)
.get('/user')
expect(response.status).toBe(201)
})
})
npx jest
并接收 thrown: "Exceeded timeout of 5000 ms for a test.,
增加超时无济于事 jest.config.js 到 testTimeout: 20000,它等待 20s 并且也失败了
为什么 express 应用从 superset 开始?我使用了官方 README
中的示例尝试从测试回调中删除 done
:
it('responds with json', async function() {
const response = await request(app)
.get('/user')
expect(response.status).toBe(201)
})
Jest 可能正在等待被调用。
通常建议您使用 async
函数或 done
。如果您将它们混合使用,Jest 通常会发出警告,不知道为什么在这个设置中它不会这样做。
或者您可以尝试在测试结束时调用 done()
。
您应该预料到测试会失败,因为发布的状态是 200
而您正在检查 201
。