尝试模拟PrismaClient时,出现以下错误。
“TypeError:mock.mockReset is not a function”,当它命中beforeEach/ mockReset函数时。
我的代码很简单。
import { PrismaClient } from '@prisma/client'
import { mockDeep, DeepMockProxy, mockReset} from 'jest-mock-extended'
import { prisma } from './client'
jest.mock('./client', () => ({
__esModule: true,
default: mockDeep<PrismaClient>(),
}))
beforeEach(() => {
mockReset(prismaMock)
})
export const prismaMock = prisma as unknown as DeepMockProxy<PrismaClient>
我在客户端文件中的代码也很简单:
import { PrismaClient } from '@prisma/client'
export const prismaClient = new PrismaClient()
export const prisma = prismaClient
1条答案
按热度按时间vc9ivgsu1#
解决方案
更新模拟以匹配指定的导出:
说明
模拟导出与实际文件导出不一致:
客户端文件
模拟客户端文件
因此,当jest尝试重置mock时,它会在一个名为“prisma”的命名导出上调用
.mockReset
,但它不存在(因此不是函数错误):而是存在于默认导出中。