问题描述
我正在尝试使用 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 (将#修改为@)