无法获取Jest + Typescript + Axios测试

我在一个类中有以下方法:

import axios from 'axios'

public async getData() {
   const resp = await axios.get(Endpoints.DATA.URL)
   return resp.data
}

然后,我尝试设置一个Jest测试来完成以下操作:

jest.mock('axios')

it('make api call to get data', () => {
   component.getData()
   expect(axios.get).toHaveBeenCalledWith(Endpoints.DATA.URL)
})

问题是,因为我没有模拟返回值,所以它会给resp.data一个错误,因为我在nullundefined对象上调用data。我花了至少2个小时尝试各种方法来让它工作,但我找不到一种方法来模拟一些返回值的axios.get

Jest的文档使用JavaScript,所以他们给出了这个示例axios.get.mockResolvedValue(resp),但我不能调用mockResolvedValue,因为在TypeScript中的axios.get上不存在该方法。

此外,如果您知道除了Jest之外还有其他很好的React测试库,可以轻松地为TypeScript做这些事情,请随意分享。

转载请注明出处:http://www.hjsszs.com/article/20230526/1203335.html