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就可以了,或者以内联的方式在测试用例里面设置模拟函数的实现也可以。

相关推荐
Gazer_S1 分钟前
【React 状态管理深度解析:Object.is()、Hook 机制与 Vue 对比实践指南】
前端·react.js·前端框架
Nicholas683 分钟前
flutter视频播放器video_player_avfoundation之AVFoundationVideoPlayer(三)
前端
Asort5 分钟前
JavaScript设计模式(六)——适配器模式 (Adapter)
前端·javascript·设计模式
Bella_a7 分钟前
请描述Vue的生命周期钩子,并在哪个阶段能访问到真实的DOM?
vue.js
是晓晓吖10 分钟前
Puppeteer page.on('response',fn)的最佳实践之等待响应
前端·puppeteer
跟橙姐学代码11 分钟前
给Python项目加个“隔离间”,从此告别依赖纠缠!
前端·python·ipython
Cache技术分享15 分钟前
202. Java 异常 - throw 语句的使用
前端·后端
_AaronWong19 分钟前
Electron全局搜索框实战:快捷键调起+实时高亮+多窗口支持
前端·搜索引擎·electron
小样还想跑27 分钟前
UniApp键盘监听全攻略
vue.js·uni-app·计算机外设