Jest 测试框架入门指南

Jest 测试框架入门指南

【免费下载链接】jest Delightful JavaScript Testing. 【免费下载链接】jest 项目地址: 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

编写第一个测试

让我们从一个简单的例子开始,测试一个加法函数。

  1. 首先创建 sum.js 文件,包含我们要测试的函数:
function sum(a, b) {
  return a + b;
}
module.exports = sum;
  1. 然后创建测试文件 sum.test.js
const sum = require('./sum');

test('1 + 2 应该等于 3', () => {
  expect(sum(1, 2)).toBe(3);
});
  1. package.json 中添加测试脚本:
{
  "scripts": {
    "test": "jest"
  }
}
  1. 运行测试:
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:

  1. 安装必要依赖:
npm install --save-dev babel-jest @babel/core @babel/preset-env
  1. 创建 babel.config.js
module.exports = {
  presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};

Jest 会自动检测 Babel 配置并处理文件转换。

TypeScript 支持

Jest 可以通过两种方式支持 TypeScript:

通过 Babel

  1. 安装 @babel/preset-typescript
npm install --save-dev @babel/preset-typescript
  1. 更新 Babel 配置:
module.exports = {
  presets: [
    ['@babel/preset-env', {targets: {node: 'current'}}],
    '@babel/preset-typescript',
  ],
};

注意:这种方式不会进行类型检查,只做转译。

通过 ts-jest

  1. 安装 ts-jest:
npm install --save-dev ts-jest
  1. 配置 Jest 使用 ts-jest 作为预处理器

这种方式会进行类型检查,更适合 TypeScript 项目。

类型定义

要在 TypeScript 测试文件中使用 Jest 的全局 API,有两种方式:

  1. @jest/globals 导入:
import {describe, expect, test} from '@jest/globals';
  1. 安装 @types/jest 类型定义:
npm install --save-dev @types/jest

与 ESLint 集成

要在 ESLint 中支持 Jest 全局变量:

  1. 配置 ESLint 环境:
// .eslintrc.js
module.exports = {
  env: {
    jest: true
  }
};
  1. 或者使用 eslint-plugin-jest 插件

常见构建工具集成

Webpack

Jest 可以与 Webpack 项目一起工作,但需要特别注意模块解析和文件处理。Webpack 的复杂配置可能需要额外的 Jest 配置来匹配。

Vite

目前 Jest 与 Vite 的集成存在一些挑战,因为 Vite 的插件系统与 Jest 不完全兼容。可以考虑使用 Vitest 作为替代方案。

Parcel

Parcel 与 Jest 的集成相对简单,因为 Parcel 本身是零配置的。

总结

Jest 是一个功能全面、易于上手的 JavaScript 测试框架。通过本文,你已经学会了:

  1. 如何安装和配置 Jest
  2. 如何编写基本的测试用例
  3. 如何与 Babel、TypeScript 等工具集成
  4. 如何在各种构建工具环境中使用 Jest

Jest 的强大之处在于其丰富的功能集和简单的配置,使得编写和维护测试变得轻松愉快。随着项目的增长,你可以逐步探索 Jest 更高级的功能,如模拟(mocking)、快照测试(snapshot testing)和覆盖率报告等。

【免费下载链接】jest Delightful JavaScript Testing. 【免费下载链接】jest 项目地址: https://gitcode.com/gh_mirrors/je/jest

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值