测试环境使用Axios(Mock)报错:无法找到axios模块
解决测试中axios模块找不到的问题
问题描述
在React项目中使用React Testing Library搭配Jest编写测试时,启动测试遇到如下报错:
Cannot find module 'axios' from 'src/components/Table/table.test.js'
测试文件table.test.js代码:
import { expect, jest, test } from "@jest/globals"; import { fireEvent, render, screen } from "@testing-library/react"; import axios from "axios"; import "@testing-library/jest-dom"; jest.mock("axios", () => ({ __esModule: true, default: { get: () => ({ data: { id: 1, name: "Ben" }, }), }, }));
当前项目依赖:
"@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0",
解决方案
安装axios依赖:你的项目依赖列表中缺少axios,无论是生产环境还是测试环境都需要安装该包。执行对应命令:
# npm 安装 npm install axios # 或者 yarn 安装 yarn add axios若仅测试文件需要axios(业务组件未使用),可安装为开发依赖:
npm install -D axios yarn add -D axios验证mock写法:如果安装后仍有问题,检查业务组件中axios的引入方式是否与mock匹配。你当前的mock逻辑对应
import axios from 'axios'的默认导出写法,是正确的,无需修改。
内容的提问来源于stack exchange,提问作者Captai-N
相关产品推荐
相关产品推荐

