0
点赞
收藏
分享

微信扫一扫

axios-mock-adapter(使用小记)

上善若水的道 2022-03-10 阅读 63

利用mock模拟项目api

原理

  • 利用axios发起请求
  • 利用axios-mock-adapter处理拦截请求

核心实现代码

# mock创建
const MockAdapter = require('axios-mock-adapter');

const axios = require('axios');

const Mock = new MockAdapter(axios);

Mock.onGet("/api/super-store/big-discounts").reply(async () => {
  try {
    return [200, bigDiscountList];
  } catch (err) {
    console.error(err);
    return [500, {
      message: "Internal server error"
    }];
  }
});

## replay 是回复,模拟你请求后的response
## get 用 onGet post 用 onPost
## 正则直接写  mock.onGet(/\/users\/\d+/) 
## 你如果带参数请求,mock的replay里面的函数,应该这样写

(config)=>{
    JSON.parse(config.data)//解析axios传过来的值
    你可以用
}
## 如果想模拟网络延迟,
var mock = new MockAdapter(axiosInstance, { delayResponse: 2000 });

## 如果你想引入很多mock接口,并全部匹配这些请求
例如:

const MockAdapter = require('axios-mock-adapter');

const axios = require('axios');

const Mock = new MockAdapter(axios);
import "./server/furniture-shop/productsDB";
import "./server/grocery3-shop/productsDB";
import "./server/related-products/productsDB";
Mock.onAny().passThrough();//这个是match all requests

常见问题

举报

相关推荐

0 条评论