在删除和放置测试路由时使用超级测试超时测试 Express 应用程序

Testing express app with supertest timesout on delete and put test routes

我正在使用 supertest 和 jest 来编写我的测试。但是 delete 和 put 路由尤其不能正常工作,它一直在等待直到超时。 我的推测告诉我路线没有被击中,因为我试图在路线中记录一些东西但没有。所以,我一定是在 supertest 上做错了什么。另外,我正在使用 methodoverride.

// test.js
const request = require("supertest");
const app = require("../app");

let server = request(app);

const aQuestionId = "5c78b8906c20cc5d22360a87";

test("DELETE /questions/:qID", done => {
    jest.setTimeout(10000);
    server
        // /questions/5c7899a24552624a5b9c7f35?_method=DELETE
        .delete(`/questions/${aQuestionId}`)
        .expect(200);
});

// Delete route
// DELETE /questions/:qID
router.delete("/questions/:qID", question.deleteQuestion);

问题是,当我完成我的请求时,我没有调用完成 这使连接保持打开状态,然后开玩笑超时,因为请求未关闭

test("DELETE /questions/:qID", done => {
    jest.setTimeout(10000);
    server
        // /questions/5c7899a24552624a5b9c7f35?_method=DELETE
        .delete(`/questions/${aQuestionId}`)
        .expect(200, done); <= call done
});