当我用Typescript编写测试时,这真的很痛苦。我在api中有函数
api.ts
export getModel = () => {...} //return a promise
当我尝试用Jest模拟它时。我收到错误消息:类型...上不存在属性ockockRejectedValueOnce。
import {getModel as mockGetModel} from './api'
jest.mock('./api, () => {
return {getModel: jest.fn(() => Promise.resolve())}
})
it('should ...', () => {
mockGetModel.mockRejectedValueOnce('hello') //error here
})
我尝试将其强制转换,但出现错误
TS2349: Cannot invoke an expression whose type lacks a call signature.
尝试许多方法,但我仍然无法用Jest模拟功能。你们能告诉我正确的方法吗?
谢谢
答案 0 :(得分:0)
您只需要使用jest.Mock
类型进行投射。
let mockGetRequest = getRequest as jest.Mock<any>
因为打字稿不知道您在调用getModel
后嘲笑了jest.mock