如何在使用 jest 模拟 axios.get 时传递 AxiosPrmoise 类型值?

Jay*_*Jay 1 node.js typescript jestjs axios typescript-typings

我尝试使用下面的代码来模拟 axios.get() 函数,但是打字稿给出了“类型为 '{ data: ExpectedResult }' 的参数不可分配给类型为 '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);
Run Code Online (Sandbox Code Playgroud)

Jay*_*Jay 5

我从模拟函数添加了 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);
Run Code Online (Sandbox Code Playgroud)