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

相关推荐
x_chengqq3 小时前
前端批量下载文件
前端
捕鲸叉5 小时前
QT自定义工具条渐变背景颜色一例
开发语言·前端·c++·qt
傻小胖5 小时前
路由组件与一般组件的区别
前端·vue.js·react.js
Elena_Lucky_baby5 小时前
在Vue3项目中使用svg-sprite-loader
开发语言·前端·javascript
小万编程6 小时前
基于SpringBoot+Vue毕业设计选题管理系统(高质量源码,提供文档,免费部署到本地)
java·vue.js·spring boot·计算机毕业设计·java毕业设计·web毕业设计
重生之搬砖忍者6 小时前
uniapp使用canvas生成订单小票图片
前端·javascript·canva可画
万水千山走遍TML6 小时前
console.log封装
前端·javascript·typescript·node·log·console·打印封装
赵大仁6 小时前
uni-app 多平台分享实现指南
javascript·微信小程序·uni-app
阿雄不会写代码6 小时前
使用java springboot 使用 Redis 作为消息队列
前端·bootstrap·html
m0_748236587 小时前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx