gpt4 book ai didi

javascript - 如何用 Jest 测试异步等待 pg 连接?

转载 作者:行者123 更新时间:2023-12-01 15:47:46 24 4
gpt4 key购买 nike

我正在尝试使用 async/await 测试一个与 pg 建立连接的函数,

import pg from 'pg';

module.exports.test = async (event, context, callback) => {
const client = new pg.Client(someConnectionString);
try {
await client.connect();
} catch (e) {
return callback(e);
}
try {
await client.query(await someAsyncFunction(test));
client.end();
return callback(null, 'success');
} catch (e) {
client.end();
return callback(e);
}
};
真的不明白我将如何用 Jest 来 mock 这个?有任何想法吗?

最佳答案

首先,开 Jest ,你可以返回一个测试异步代码的 promise :

import pg from 'pg';

module.exports.test = async (event, context) => {
const client = new pg.Client(someConnectionString);
try {
await client.connect();
await client.query(await someAsyncFunction(test));
} finally {
client.end();
}
};
任意 async函数返回一个 promise ,您不必手动处理将错误传递给回调。
现在关于如何模拟 pg 的问题,您可以创建一个假 pg 对象,但这很少是理想的,我将仅展示一个示例来回答实际问题。
你应该在运行测试之前尝试设置一个测试数据库,然后在之后清理它,这样你就不必模拟任何东西并且可以使用真正的 pg这将大大提高测试的质量。
// mock example:
class MockClient {
async connect() {
}
async query() {
}
}

关于javascript - 如何用 Jest 测试异步等待 pg 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46152048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com