无法获取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
一个错误,因为我在null
或undefined
对象上调用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