Jest Mock Axios失效报错:TypeError: 无法读取undefined的mockImplementation属性
解决Jest Mock Axios时的TypeError问题
你的代码报错的核心原因是错误地将axios赋值为字符串"axios",而不是导入真实的axios模块。这导致axios.get为undefined,调用mockImplementation时自然抛出Cannot read properties of undefined错误。
修正后的代码
// 先正确导入axios模块 import axios from 'axios'; // Mock整个axios模块 jest.mock('axios'); // 为get方法设置mock响应逻辑 axios.get.mockImplementation((url) => { if(url === process.env.ENHANCED_CLAIM_STATUS_276_DETAILS){ return Promise.resolve({ status: 200, data: claim_response_276 }); } if(url === process.env.ENHANCED_VALUE_ADDS_277_DETAILS){ return Promise.resolve({ status: 200, data: claim_response_277 }); } });
额外注意事项
- 确保
claim_response_276和claim_response_277变量已在测试文件中定义或导入,避免出现新的未定义错误。 - 若项目使用CommonJS规范(require语法),导入方式改为
const axios = require('axios');,Jest的mock写法保持不变。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

