You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中使用axios-mock-adapter返回Promise无法Mock API求助

在React Native中解决axios-mock-adapter返回Promise的问题

你在React Native中使用axios-mock-adapterMock Axios API时遇到了问题,代码如下:

const axiosMock = new MockAdapter(axios);
console.log("axiosMock ==>", axiosMock);

运行测试时,axiosMock返回了一个Promise对象,日志输出:

console.log
    axiosMock ==> Promise { _x: 0, _y: 0, _z: null, _A: null }

这导致无法正常Mock API,可通过以下方式解决:

  • 检查axios导入与版本兼容性
    确保你导入的是axios的同步默认导出,而非异步包装后的模块。同时验证axios和axios-mock-adapter的版本是否匹配——比如axios v1.x需要搭配axios-mock-adapter v1.x及以上版本,版本不兼容会导致实例化异常,返回Promise而非预期的MockAdapter实例。

  • 避免在异步上下文实例化MockAdapter
    如果测试代码中使用了async/await或Promise链,不要在异步逻辑中错误地将MockAdapter的实例化代码包裹在Promise里,这会导致axiosMock变量被赋值为Promise对象。确保在测试文件的同步顶层作用域实例化:

    import axios from 'axios';
    import MockAdapter from 'axios-mock-adapter';
    
    // 同步实例化MockAdapter
    const axiosMock = new MockAdapter(axios);
    
    // 配置Mock接口示例
    axiosMock.onGet('/test-api').reply(200, { result: 'mocked data' });
    
  • 检查测试环境配置
    在Jest等测试环境中,确认axios没有被配置为异步加载模块。可以在Jest配置文件中调整模块处理规则,确保axios被同步解析,避免实例化时返回Promise。

内容的提问来源于stack exchange,提问作者Pathik Gandhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:55:56