javascript - Jest 测试异步功能 - 测试运行完成后一秒钟 Jest 没有退出
问题描述
我想使用 node-mocks-http 用 Jest 测试我的 Next.js API 函数。这是我要测试的功能:
export default async (
req: NextApiRequest,
res: NextApiResponse
): Promise<void> => {
const foods = await getFoods()
res.json(foods)
}
这是我的测试文件的样子:
import { createMocks } from 'node-mocks-http'
import handler from './foods'
test('api route', async (done) => {
try{
const { req, res } = createMocks({
method: 'GET',
})
await handler(req, res)
expect(res._getStatusCode()).toBe(200)
done()
} catch(err){
done(err)
}
})
没有await getFoods()
调用,一切都按预期工作。但是,通过调用我得到错误:Jest did not exit one second after the test run has completed.
这getFoods()
是一个异步棱镜数据库查询。这里缺少什么?
解决方案
如果我将它添加到我的测试文件中,这个警告就会消失:
afterAll(async () => {
await prisma.$disconnect()
})
推荐阅读
- c# - 在 SQL 中保存具有许多条件的数据,然后在保存每条记录之前从 SQL 中检索数据以进行比较
- azure - 如何在 azure devops 中为带有引用的 dot net 项目的 xamarin 项目创建 YAML 构建管道
- java - 在设计异步 Java API 时,如何确保整个 CompletableFuture 链由内部线程池执行?
- jquery - 由于 MIME 类型错误(Spring Boot 2、Thymeleaf、Bootstrap)而无法加载 javascript 文件
- ios - 如何本地化“Touch ID for”文本
- java - 在其他线程中使用蓝牙连接的 OutputStream 会干扰消息的接收
- html - Bootstrap 按钮上的自动换行不起作用
- android - 房间和调试在 WorkManager 中不起作用?
- haskell - 解析错误(可能是不正确的缩进或不匹配的括号)
- php - 如何将mysql数据类型分配给php var