当前位置: 首页 > news >正文

axios-mock-adapter使用

文章目录

  • 1. 安装 axios-mock-adapter
  • 2. 引入所需的库
  • 3. 创建一个模拟适配器实例
  • 4. 定义模拟响应
  • 5. 在你的代码中使用 axios
  • 6. 在测试或开发完成后清理模拟

axios-mock-adapter 是一个用于模拟 axios HTTP 请求的库。它允许你在测试或开发过程中,为 axios 实例提供模拟的响应,以便在没有实际后端服务的情况下进行前端功能的开发和测试。

1. 安装 axios-mock-adapter

首先,你需要安装 axios-mock-adapter。你可以使用 npm 或 yarn 来安装它:

注意:安装到开发环境!不要直接默认安装到

npm install axios-mock-adapter --save-dev  
# 或者  
yarn add axios-mock-adapter --dev

2. 引入所需的库

在你的测试文件或需要模拟请求的文件中,引入 axiosaxios-mock-adapter

import axios from 'axios';  
import MockAdapter from 'axios-mock-adapter';

3. 创建一个模拟适配器实例

接下来,你需要创建一个 MockAdapter 实例,并将其与你的 axios 实例关联起来:

// 创建axios实例
const service = axios.create({// axios中请求配置有baseURL选项,表示请求URL公共部分baseURL: import.meta.env.VITE_APP_BASE_API,// 超时timeout: 10000
})// 创建一个 MockAdapter 实例,并将其与你的 axios 实例关联起来
const mock = new MockAdapter(service);

4. 定义模拟响应

使用 mock 实例的 onGetonPostonPutonDelete 等方法来定义针对不同 HTTP 方法的模拟响应:

mock.onGet('/api/users').reply(200, {  users: [  { id: 1, name: 'John Doe' },  { id: 2, name: 'Jane Doe' }  ]  
});  mock.onPost('/api/users').reply(function (config) {  // 你可以访问请求的 config 对象,包括请求头和请求体  const { data } = config;  return [201, { id: data.id, name: data.name }]; // 返回状态码和响应数据  
});

建议使用单独一个mock文件夹,导入的形式来引入

// mock.js
export const MockGets = {'/captchaImage': {"msg": "操作成功","code": 200,"captchaEnabled": true,"uuid": "352f4bb7088d435dad641c34aad337c4"}
}// service.js
Object.keys(MockGets).forEach(function(key) {mock.onGet(key).reply(200, MockGets[key]);console.log(key + ": " + MockGets[key]);
});

5. 在你的代码中使用 axios

axios.get('/api/users')  .then(response => {  console.log(response.data); // 输出模拟的用户列表  })  .catch(error => {  console.error(error);  });

6. 在测试或开发完成后清理模拟

当你完成测试或开发,并希望使用真实的后端服务时,你需要确保移除或禁用所有的模拟。这通常是通过销毁 MockAdapter 实例或移除模拟定义来完成的。

mock.restore(); // 恢复所有模拟,使得 axios 请求将再次发往实际服务器

相关文章:

axios-mock-adapter使用

文章目录 1. 安装 axios-mock-adapter2. 引入所需的库3. 创建一个模拟适配器实例4. 定义模拟响应5. 在你的代码中使用 axios6. 在测试或开发完成后清理模拟 axios-mock-adapter 是一个用于模拟 axios HTTP 请求的库。它允许你在测试或开发过程中,为 axios 实例提供…...

基于单片机的家用无线火灾报警系统设计

摘 要:针对普通家庭的火灾防范需求,设计一种基于单片机的家用无线智能火灾报警系统。该系统主要由传感器、单片机、无线通信模块、GSM 模块、输入显示模块、声光报警电路和GSM 报警电路组成。系统工作时,检测部分单片机判断是否发生火灾,并将信息通过无线通信模块传…...

LangChain:索引(Indexes)--基础知识

引言 在当今信息爆炸的时代,如何高效地获取、处理和利用信息成为了关键。LangChain,作为一种先进的语言模型框架,提供了强大的索引功能,帮助用户更好地管理和应用文本数据。本文将详细介绍LangChain索引中的几个核心组件&#xf…...

Cortex-M4架构

第一章 嵌入式系统概论 1.1 嵌入式系统概念 用于控制、监视或者辅助操作机器和设备的装置,是一种专用计算机系统。 更宽泛的定义:是在产品内部,具有特定功能的计算机系统。 1.2 嵌入式系统组成 硬件 ①处理器:CPU ②存储器…...

对称排序(蓝桥杯)

文章目录 对称排序问题描述模拟 对称排序 问题描述 小蓝是一名软件工程师,他正在研究一种基于交换的排序算法,以提高排序的效率。 给定一个长度为 N 的数组 A,小蓝希望通过交换对称元素的方式对该数组进行排序。 具体来说,小蓝…...

React - 你使用过高阶组件吗

难度级别:初级及以上 提问概率:55% 高阶组件并不能单纯的说它是一个函数,或是一个组件,在React中,函数也可以做为一种组件。而高阶组件就是将一个组件做为入参,被传入一个函数或者组件中,经过一定的加工处理,最终再返回一个组件的组合…...

【C语言】结构体、枚举、联合(自定义类型)

文章目录 前言一、结构体1.结构体的声明2.结构体的自引用3.结构体变量的定义和初始化4.结构体成员的访问5.结构体内存对齐(重点)6.#pragma修改默认对齐数7.结构体传参 二、位段1.位段的声明2.位段的内存分配3.位段的跨平台问题 三、枚举四、联合 &#x…...

用vue.js写案例——ToDoList待办事项 (步骤和全码解析)

目录 一.准备工作 二.编写各个组件的页面结构 三.实现初始任务列表的渲染 四.新增任务 五.删除任务 六.展示未完成条数 七.切换状态-筛选数据 八.待办事项(全)代码 一.准备工作 在开发“ToDoList”案例之前,需要先完成一些准备工作&a…...

提高大型语言模型 (LLM) 性能的四种数据清理技术

原文地址:four-data-cleaning-techniques-to-improve-large-language-model-llm-performance 2024 年 4 月 2 日 检索增强生成(RAG)过程因其增强对大语言模型(LLM)的理解、为它们提供上下文并帮助防止幻觉的潜力而受…...

Rust 练手小项目:猜数游戏

好久没写 Rust 了,参考《Rust 程序设计语言》写了一下猜数游戏。差不多 40 行,感觉写起来真舒服。 use rand::Rng; use std::{cmp::Ordering, io};fn main() {let secret_number rand::thread_rng().gen_range(0..100);println!("[*] Guess the n…...

蓝桥杯物联网竞赛_STM32L071_16_EEPROM

仍然是没有考过的知识点 朴素的讲就是板子中一块不会因为断电重启而导致数值初始化的一片地址 要注意的是有时候容易把板子什么写错导致板子什么地址写坏了导致程序无法烧录,这个时候记得一直按flash键烧录,烧录时会报错,点击确定&#xff0…...

复习知识点整理

零碎语法 1.导入某个文件夹的index文件,index可以省略(这里导入的是router和store文件下的index.js文件) 2.路由懒加载 this 1.在vue文件中使用router\store对象时 this:普通函数的this指向vue实例对象(在没有明确指向的时候…...

7款公司电脑监控软件

7款公司电脑监控软件 研究证明,人们在家办公的效率比在办公室办公的效率低一半,其中原因是缺少监督,即便在公司办公,还存在员工偷闲的时刻,比如聊天、浏览无关网站、看剧、炒股等,企业想提高员工的工作效率…...

服务器 安装1Panel服务器运维管理面板

服务器 安装1Panel服务器运维管理面板 SSH链接服务器安装1Panel 出现此提示时输入目标路径,须以“/”开头,默认:/opt,本例:/www。 出现此提示时输入目标端口,须未被使用的端口,默认&#xff1…...

最大花之能量(蓝桥杯)

文章目录 最大花之能量问题描述动态规划 最大花之能量 问题描述 在一个神奇的王国里,有一个美丽的花园,里面生长着各种奇妙的花朵。这些花朵都有一个特殊的能力,它们能够释放出一种叫做「花之能量」的神秘力量。每朵花的花之能量都不同&…...

探索算力(云计算、人工智能、边缘计算等):数字时代的引擎

引言 在数字时代,算力是一种至关重要的资源,它是推动科技创新、驱动经济发展的关键引擎之一。简而言之,算力即计算能力,是计算机系统在单位时间内完成的计算任务数量或计算复杂度的度量。随着科技的不断发展和应用范围的不断扩大…...

数据可视化-ECharts Html项目实战(10)

在之前的文章中,我们学习了如何在ECharts中编写雷达图,实现特殊效果的插入运用,函数的插入,以及多图表雷达图。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错&…...

甲方安全建设之研发安全-SCA

前言 大多数企业或多或少的会去采购第三方软件,或者研发同学在开发代码时,可能会去使用一些好用的软件包或者依赖包,但是如果这些包中存在恶意代码,又或者在安装包时不小心打错了字母安装了错误的软件包,则可能出现供…...

[html]网页结构以及常见标签用法

哎,我服了,明明之前学了html的,但时间一长我就忘记了,本来flask学到视图了,但涉及到了html我觉得还是需要重新回顾一下,,,,,, web开发技术栈一共有3门语言。分别是: HTML:译作超文本标记语言&am…...

【C语言】if语句选择题

前言 题目一: 题目二: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 前言 关于if语句相关的选择题 题目一: 关于if语句说法正确是:( ) A .if语…...

2026年最好的AI创业机会,就藏在你压根看不上的角落里

还在焦虑AI会替代你?抢你饭碗?你根本不知道,现在有一群人,正在用AI给自己“印钞票”他们不是搞什么ChatGPT插件,也不是训练大模型,他们就盯着那些看着不起眼,甚至你压根看不上的小事。利用这些小…...

实在Agent适合什么规模的企业使用?深度解析企业级AI Agent适配逻辑与落地边界

随着2026年企业数字化转型进入深水区,AI Agent(人工智能体)已不再仅仅是实验室里的原型,而是演变为推动企业智能自动化的核心引擎。在当前“大模型落地”的浪潮下,许多企业管理者都在思考一个核心问题:像实…...

别再手动量了!用Python+Open3D给BIM模型做‘CT扫描’,自动揪出施工误差(附完整代码)

BIM模型质量检测革命:PythonOpen3D实现毫米级施工误差智能分析 施工现场的质量控制一直是建筑行业的核心痛点。传统靠人工抽检的方式不仅效率低下,还容易遗漏隐蔽问题。想象一下,如果能把BIM模型当作"数字孪生体",用三维…...

安防弱电智能化VISIO图例实战指南:从入门到精通的设计技巧

1. VISIO在安防弱电设计中的核心价值 第一次接触安防弱电智能化设计时,我被各种复杂的系统连接关系搞得头晕眼花。直到发现VISIO这个神器,才真正体会到什么叫"一图胜千言"。不同于普通CAD软件,VISIO最大的优势在于它专为系统图设计…...

《Linux网络编程》2.Socket编程(UDP/TCP)

💡Yupureki:个人主页 ✨个人专栏:《C》 《算法》《Linux系统编程》《高并发内存池》《MySQL数据库》 《个人在线OJ平台》《Linux网络编程》 🌸Yupureki🌸的简介: 目录 1. UDP编程 1.1 常用接口 1.1.1 socket() – 创建套接字 1.1.2 bin…...

新手避坑指南:51单片机驱动ADC0809的五个常见问题及解决方法(附Proteus调试技巧)

51单片机与ADC0809实战避坑手册:从仿真异常到显示优化的全流程解析 第一次在Proteus里搭建51单片机驱动ADC0809的仿真环境时,看着屏幕上跳动的乱码和永远为零的电压读数,我盯着电路图反复检查了三遍引脚连接——所有线序明明完全正确。这种挫…...

别再折腾LangChain了!用Ollama + DeepSeek R1在WSL2上5分钟搞定本地知识库问答

5分钟极简方案:用OllamaDeepSeek R1在WSL2搭建高效本地知识库 当开发者首次接触本地知识库系统时,往往会被LangChain等框架的复杂性劝退。本文将介绍一种绕过传统复杂流程的极简方案,只需5分钟即可在Windows 11的WSL2环境中搭建可用的问答系统…...

告别编译报错!Ubuntu 22.04 LTS下x264库的保姆级安装指南(含configure参数详解)

告别编译报错!Ubuntu 22.04 LTS下x264库的保姆级安装指南(含configure参数详解) 在视频处理领域,x264作为开源的H.264编码器实现,因其出色的压缩效率和画质表现,成为FFmpeg等多媒体工具链的核心组件。然而对…...

实战指南:Autofac 依赖注入在微服务架构中的高效应用

1. Autofac在微服务架构中的核心价值 微服务架构最大的挑战之一就是如何优雅地管理数百个服务的依赖关系。我经历过一个电商系统重构项目,当单体应用拆分成30多个微服务后,手工管理服务依赖就像在玩多米诺骨牌——改一个服务参数可能引发连锁反应。这时候…...

Vue3 + xterm.js 4.x + WebSocket 打造现代化Web终端实战指南

1. 为什么选择Vue3 xterm.js 4.x WebSocket组合? 在构建现代化Web终端时,技术选型直接影响开发效率和最终用户体验。Vue3提供了响应式编程范式和组件化开发优势,xterm.js 4.x是最新版本的浏览器终端模拟器,而WebSocket则实现了…...