我正在尝试使用 prismock 测试一个使用 queryRawUnsafe 的函数,由于某种原因,当我运行测试时它无法正确读取。现在正在测试我是否使用
await DBConn.table_name.findMany()
它工作正常并返回所有记录,但是,如果我这样做
await DBConn.$queryRawUnsafe(`SELECT * FROM table_name`)
它什么也没返回,但也没有错误,有谁知道如何解决这个问题?
这就是我嘲笑 prisma 客户端的方式
jest.mock('@prisma/client', () => {
return {
...jest.requireActual('@prisma/client'),
PrismaClient: jest.requireActual('prismock').PrismockClient,
};
});
我目前的理论是 prismock 不理解 $。语法?
prismock
包不支持模拟$queryRawUnsafe()
方法,请参阅issues#731。
作者建议使用
jest.spyOn(prisma, '$queryRawUnsafe').mockResolvedValue(YOUR_EXPECTED_VALUE)
来模拟 $queryRawUnsafe()
方法及其解析值。