我尝试了下面的代码来模拟axios.get()函数,但是打字稿给我“类型'{数据:期望结果}'的参数无法分配给类型'AxiosPromise <{}>的参数”错误。 有人可以帮我如何处理此错误吗?
const expectedResult: string = 'result';
const mock = jest.spyOn(axios, 'get');
mock.mockReturnValueOnce({ data: expectedResult });
const result = await sut.getFeed("testUrl");
expect(mock).toHaveBeenCalled();
expect(result).toBe(expectedResult);
答案 0 :(得分:2)
我从模拟函数中添加了AxiosResponse类型的返回值,并且效果很好。
const expectedResult: string = 'result';
const feedResponsePromise = Promise.resolve({ data: expectedResult } as AxiosResponse);
const mock = jest.spyOn(axios, 'get');
mock.mockReturnValueOnce(feedResponsePromise);
const result = await sut.getFeed("testUrl");
expect(result).toBe(expectedResult);