当前位置: 首页 > 面试题库 >

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

狄高畅
2023-03-14
问题内容

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

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() },
        },
    };
});


 类似资料:
  • 本文向大家介绍Vue 前端实现登陆拦截及axios 拦截器的使用,包括了Vue 前端实现登陆拦截及axios 拦截器的使用的使用技巧和注意事项,需要的朋友参考一下 该项目是利用了Github 提供的personal token作为登录token,通过token访问你的Repository List。通过这个项目学习如何实现一个前端项目中所需要的 登录及拦截、登出、token失效的拦截及对应 axi

  • 问题内容: 收到403错误时,我想在axios拦截器中进行重定向。但是我如何才能访问React组件之外的历史记录呢? 在React-Router v4中以编程方式导航中,它是在React组件的上下文中,但是这里我在axios上下文中尝试 问题答案: 我通过从Component树之外访问Redux Store并通过注销按钮发送相同的操作来解决了这一问题,因为我的拦截器是在单独的文件中创建的,并且在加

  • 似乎有很多不同的方法可以做到这一点,但我试图只使用sinon,sinon-test,chai/mocha,axios,httpmock模块。我无法成功模拟使用axios进行的GET调用。我希望能够模拟来自axios调用的响应,这样单元测试实际上就不必发出外部API请求。 我尝试过通过创建沙箱来建立一个基本的单元测试,并使用sinon stub来建立一个GET调用并指定预期的响应。我不熟悉JavaS

  • 我正在使用spring-kafka-2.2.7。RELEASE并尝试在方法级别使用@KafkaListener与ConvoltKafkaListenerContainerFactory一起创建一个消费者。根据我的理解,这将创建一个ConvoltMessageListenerContainer。 > 如果我有两种不同的方法使用@KafkaListener来消费两个不同的主题,它会创建两个Contop

  • 我正在尝试使用<code>网络客户端 谢谢 -斯里尼

  • 本文向大家介绍Vue中axios拦截器如何单独配置token,包括了Vue中axios拦截器如何单独配置token的使用技巧和注意事项,需要的朋友参考一下 在了解到cookie、session、token的作用后学习token的使用 cookie cookie是随着url将参数发送到后台,安全性最低,并且大小受限,不超过4kb左右,它的数据保存在客户端 session session数据保存在服务