嘲笑函数打字稿

时间:2019-04-24 10:24:49

标签: reactjs jestjs

当我用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模拟功能。你们能告诉我正确的方法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您只需要使用jest.Mock类型进行投射。

let mockGetRequest = getRequest as jest.Mock<any>

因为打字稿不知道您在调用getModel后嘲笑了jest.mock