在使用玩笑嘲笑axios.get时如何传递AxiosPrmoise类型值?

时间:2019-02-19 22:24:22

标签: node.js typescript jestjs axios typescript-typings

我尝试了下面的代码来模拟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);

1 个答案:

答案 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);