使用jest.mock('axios')时如何模拟拦截器?

使用笑话进行测试时,我具有基本的测试服语法:

jest.mock('axios');

describe('app', () => {

let render

beforeEach(() => {

axiosMock.get.mockResolvedValueOnce({

data: {greeting: 'hello there'},

}),

render= renderApp()

});

test('should render something', () => {

expect(something).toBeInTheDocument();

});

});

问题是我的代码中有拦截器,当使用jest命令输出运行测试时,拦截器会:

TypeError:无法读取未定义的属性“拦截器”

并指向拦截器对象

axiosInstance.interceptors.request.use(...

axiosInstance 是存储以下项的返回值的变量 axios.create

export const axiosInstance = axios.create({...

在SO上引用了该axios线程。我如何以开玩笑的方式测试axios,但是它不涉及任何拦截器,因此并没有真正的帮助。

回答:

最后就足够了

jest.mock('axios', () => {

return {

interceptors: {

request: { use: jest.fn(), eject: jest.fn() },

response: { use: jest.fn(), eject: jest.fn() },

},

};

});

以上是 使用jest.mock('axios')时如何模拟拦截器? 的全部内容, 来源链接: utcz.com/qa/429995.html

回到顶部