Jest 测试框架入门指南
【免费下载链接】jest Delightful JavaScript Testing. 项目地址: https://gitcode.com/gh_mirrors/je/jest
什么是 Jest?
Jest 是一个功能强大的 JavaScript 测试框架,由 Facebook 开发并维护。它以"零配置"为设计理念,提供了开箱即用的测试解决方案,特别适合 React 和前端项目的测试,但也完全支持 Node.js 后端项目的测试。
安装 Jest
要开始使用 Jest,首先需要在项目中安装它。推荐作为开发依赖安装:
npm install --save-dev jest
或者如果你使用 yarn:
yarn add --dev jest
编写第一个测试
让我们从一个简单的例子开始,测试一个加法函数。
- 首先创建
sum.js文件,包含我们要测试的函数:
function sum(a, b) {
return a + b;
}
module.exports = sum;
- 然后创建测试文件
sum.test.js:
const sum = require('./sum');
test('1 + 2 应该等于 3', () => {
expect(sum(1, 2)).toBe(3);
});
- 在
package.json中添加测试脚本:
{
"scripts": {
"test": "jest"
}
}
- 运行测试:
npm test
如果一切正常,你会看到类似这样的输出:
PASS ./sum.test.js
✓ 1 + 2 应该等于 3 (5ms)
恭喜!你已经成功编写了第一个 Jest 测试!
理解测试代码
让我们分解一下测试文件中的关键部分:
test(): Jest 提供的全局函数,定义一个测试用例expect(): 创建断言,检查值是否符合预期.toBe(): 匹配器,检查严格相等(使用===)
命令行使用
Jest 提供了丰富的命令行选项:
jest 测试文件模式 --notify --config=配置文件.json
常用选项包括:
--watch: 监视模式,文件变化时自动重新运行测试--coverage: 生成测试覆盖率报告--verbose: 显示更详细的输出
配置 Jest
虽然 Jest 号称"零配置",但大型项目通常需要一些定制配置。可以通过以下命令生成基本配置文件:
npm init jest@latest
这会引导你回答几个问题,然后生成一个 jest.config.js 文件,包含常用配置选项的说明。
与 Babel 集成
现代 JavaScript 项目通常使用 Babel 转译代码。要让 Jest 支持 Babel:
- 安装必要依赖:
npm install --save-dev babel-jest @babel/core @babel/preset-env
- 创建
babel.config.js:
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};
Jest 会自动检测 Babel 配置并处理文件转换。
TypeScript 支持
Jest 可以通过两种方式支持 TypeScript:
通过 Babel
- 安装
@babel/preset-typescript:
npm install --save-dev @babel/preset-typescript
- 更新 Babel 配置:
module.exports = {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
'@babel/preset-typescript',
],
};
注意:这种方式不会进行类型检查,只做转译。
通过 ts-jest
- 安装 ts-jest:
npm install --save-dev ts-jest
- 配置 Jest 使用 ts-jest 作为预处理器
这种方式会进行类型检查,更适合 TypeScript 项目。
类型定义
要在 TypeScript 测试文件中使用 Jest 的全局 API,有两种方式:
- 从
@jest/globals导入:
import {describe, expect, test} from '@jest/globals';
- 安装
@types/jest类型定义:
npm install --save-dev @types/jest
与 ESLint 集成
要在 ESLint 中支持 Jest 全局变量:
- 配置 ESLint 环境:
// .eslintrc.js
module.exports = {
env: {
jest: true
}
};
- 或者使用
eslint-plugin-jest插件
常见构建工具集成
Webpack
Jest 可以与 Webpack 项目一起工作,但需要特别注意模块解析和文件处理。Webpack 的复杂配置可能需要额外的 Jest 配置来匹配。
Vite
目前 Jest 与 Vite 的集成存在一些挑战,因为 Vite 的插件系统与 Jest 不完全兼容。可以考虑使用 Vitest 作为替代方案。
Parcel
Parcel 与 Jest 的集成相对简单,因为 Parcel 本身是零配置的。
总结
Jest 是一个功能全面、易于上手的 JavaScript 测试框架。通过本文,你已经学会了:
- 如何安装和配置 Jest
- 如何编写基本的测试用例
- 如何与 Babel、TypeScript 等工具集成
- 如何在各种构建工具环境中使用 Jest
Jest 的强大之处在于其丰富的功能集和简单的配置,使得编写和维护测试变得轻松愉快。随着项目的增长,你可以逐步探索 Jest 更高级的功能,如模拟(mocking)、快照测试(snapshot testing)和覆盖率报告等。
【免费下载链接】jest Delightful JavaScript Testing. 项目地址: https://gitcode.com/gh_mirrors/je/jest
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



