jest使用__mocks__设置模拟函数不生效 解决方案

模拟文件

javascript 复制代码
// __mocks__/axios.js
const axios = jest.fn();
axios.get = jest.fn();
axios.get.mockResolvedValue({
  data: {
    undoList: ['get data'],
  },
});
export default axios;

测试文件

javascript 复制代码
jest.mock('axios');
import Axios from 'axios';

test('mytest', () => {
  console.log("test before", Axios.get()); // 显示undefined
})

原因

jest.config.js中resetMocks为true时,会在每个测试用例开始前清空所有模拟函数的实现。

javascript 复制代码
// jest.config.js

module.exports = {
  // ...
  "resetMocks": true,
};

将resetMocks改为false就可以了,或者以内联的方式在测试用例里面设置模拟函数的实现也可以。

相关推荐
鱼鱼块2 分钟前
从零搭一个 Vue 小家:用 Vite + 路由轻松入门现代前端开发
vue.js·面试·前端框架
梓仁沐白8 分钟前
CSAPP-Attacklab
前端
郑州光合科技余经理24 分钟前
海外国际版同城服务系统开发:PHP技术栈
java·大数据·开发语言·前端·人工智能·架构·php
一行注释37 分钟前
前端数据加密:保护用户数据的第一道防线
前端
running up40 分钟前
Java集合框架之ArrayList与LinkedList详解
javascript·ubuntu·typescript
纪伊路上盛名在43 分钟前
记1次BioPython Entrez模块Elink的debug
前端·数据库·python·debug·工具开发
xiaoxue..44 分钟前
React 之 Hooks
前端·javascript·react.js·面试·前端框架
Alair‎1 小时前
300TypeScript基础知识
javascript
旧梦吟1 小时前
脚本网页 三人四字棋
前端·数据库·算法·css3·html5
莫物1 小时前
element el-table表格 添加唯一标识
前端·javascript·vue.js