使用 jest 和 supertest 进行投掷

问题描述

我正在尝试使用 supertest 和 jest 来处理给定代码的异常用例。我尝试了很多东西,但无法找到解决方案。

var serverless = require('serverless-http');
import express from 'express';

const app = express();
app.use(express.json());

app.post('/post',async (req,res) => {

    try {
        // Get user from dynamodb
        const id = 'random-user-id';
        const user = await DynamoDb.Scan({
            TableName: 'user_table',FilterExpression: 'id = :id',ExpressionAttributeValues: {
                ':id': id,},}).catch(async (err) => {
            throw err;
        });

        console.log('user',user);
        return res.status(200).send();

    } catch (exception) {
        // Trying to handle this
        throw exception;
    }

});

module.exports.handler = serverless(app);

测试用例

test("should throw error on failing to get user from database",async () => {

    mockScan.mockImplementation(() => {
        return {
            promise() {
                return Promise.reject({});
            },};
    });

    const response = await request
        .post(`/post`)
        .send();
});

在运行测试时,它卡住并导致

测试运行完成后,Jest 没有退出一秒钟。这 通常意味着没有异步操作 在您的测试中停止。考虑运行 Jest --detectOpenHandles解决此问题。

解决方法

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

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

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

相关问答

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