测试 JEST 测试 Express 的超时超过 5000 毫秒

问题描述

我正在尝试为使用 postresql 的 heroku 应用程序编写测试,但看起来我的测试函数无法连接到数据库。端点本身工作正常,当我在浏览器上测试它时,我会收到来自服务器的响应。提前致谢!! 我的代码
server.js

import express from 'express';
import bodyParser from 'body-parser';
import cors from 'cors';

import mountRouter from './routes/index.js';

const port = 7000;
const app = express();


app.use(express.json());
app.use(bodyParser.urlencoded({ extended: true}));
app.use(cors());

mountRouter(app);

app.get('/',(req,res) => {
    res.send("Welcome. The connection has been established.");
});

app.get('/test',res) => {
    res.send("Test passed.");
});

app.listen(process.env.PORT || port,() => {
    console.log(`Server listening`)
  })

export default app;

index.js

import patientsRouter from './patients.js';
import staffMembersRouter from './staffMembers.js';
import hospitalWardsRouter from './hospitalWards.js';
import authenticationRouter from './authentication.js';

const mountRouter = app => {
    app.use('/patients',patientsRouter)
    app.use('/staff',staffMembersRouter)
    app.use('/wards',hospitalWardsRouter)
    app.use('/authentication',authenticationRouter)
}

export default mountRouter;

hospitalWardsController.js

import pool from '../db/db.js';
import sqlTemplate from 'sql-template-strings';

const { sql } = sqlTemplate;

class HospitalWardsController {

    getAllHospitalWards = async (req,res) => {
        try {
            const allHospitalWards = await pool.query(sql`
                SELECT * FROM hospital_ward;
                `);

            res.status(200).json(allHospitalWards.rows);
        } catch (err) {
            console.log(err.message);
        }
    }

    getFreebedsCount = async (req,res) => {
        try {
            const { hospital_ward } = req.body;
            const freebedsCount = await pool.query(sql`
                SELECT hospital.name AS hospital_name,hospital.location AS hospital_location,hospital_ward.name AS hospital_ward_name,(bed_quantity - bed_reserved) AS beds_free
                FROM hospital_ward
                INNER JOIN hospital
                ON hospital_ward.hospital_id = hospital.id
                WHERE hospital_ward.name = ${hospital_ward}
                ORDER BY beds_free DESC;
            `);
            
            res.status(200).json(freebedsCount.rows);
        } catch (err) {
            console.log(err.message);
        }
    }
}

const hospitalWardsController = new HospitalWardsController();

export default hospitalWardsController;

wards.test.js

import request from 'supertest';
import hospitalWardsController from '../routes/hospitalWards.js';
import app from '../server.js';




    describe("hospitalWards.js TESTS",() => {
    
        describe("hospitalWards.js GET('/') method TEST",() => {           
   
            test("should return all hospital wards",async () => {
                app.listen();
                                
                const response = await request(hospitalWardsController).get("/").send({});
                expect(response.statusCode).toBe(200);
             });                               
        });
    });
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...