Jest 测试速查
共 29 条 Jest 常用命令与语法,覆盖常用命令、配置、常用断言、Mock 与 Spy、异步测试 五组场景。支持搜索与分类筛选,点击即可复制。
常用命令
运行测试与覆盖率。
| 命令 / 语法 | 说明 |
|---|---|
| 运行全部测试 | |
| 监听改动并只跑相关测试 | |
| 只运行指定文件 | |
| 只运行名字匹配的测试 | |
| 生成覆盖率报告 | |
| 逐个测试用例显示结果 | |
| 串行运行(排查并发 / 资源问题) |
配置
jest.config.js 常用项。
| 命令 / 语法 | 说明 |
|---|---|
| 指定测试文件匹配规则 | |
| 指定转译器(支持 TS / JSX) | |
| 路径别名映射,和构建保持一致 | |
| 每次测试前执行的初始化 | |
| 使用 jsdom 环境测试 DOM 相关代码 |
常用断言
expect 的常用匹配器。
| 命令 / 语法 | 说明 |
|---|---|
| 严格相等(===) | |
| 深度相等(比较结构与内容) | |
| 数组 / 字符串包含某元素 | |
| 断言函数抛出异常 | |
| 断言 mock 被以指定参数调用 | |
| 判空与真值断言 | |
| 浮点数近似比较 |
Mock 与 Spy
隔离依赖与观察调用。
| 命令 / 语法 | 说明 |
|---|---|
| 创建 mock 函数 | |
| 设置返回值(mockResolvedValue 返回 Promise) | |
| 自动 mock 整个模块 | |
| 监视并可选替换对象方法 | |
| 查看调用记录 | |
| 伪造定时器,配合 jest.advanceTimersByTime 控制时间 |
异步测试
测试 Promise 与 async 代码。
| 命令 / 语法 | 说明 |
|---|---|
| 断言 Promise 成功解析值 | |
| 断言 Promise 被拒绝 | |
| 回调式异步:必须调用 done 否则超时 | |
| 测试的前置与清理钩子 |
使用说明
Jest 命令与语法速查:常用命令、配置、断言、Mock 与异步测试;支持搜索与分类筛选,点击即可复制。
- 按用途点分类:常用命令、配置、常用断言、Mock 与 Spy、异步测试。
- 点「命令 / 语法」列复制,替换文件路径与用例名后执行。
- 只跑相关用例用 --watch 或 -t;看覆盖情况用 --coverage。
- 异步断言记得 await expect(...).resolves / rejects。
常见问题
- toBe 和 toEqual 有什么区别?
- toBe 用 Object.is 严格比较(基本类型与引用),toEqual 做深度相等比较(对象、数组内容)。比较对象用 toEqual,比较值用 toBe。
- 测试用例超时 / 挂起怎么办?
- 回调式异步必须调用 done(),否则会一直等待到超时;用 async/await 时确保 await 了 Promise。必要时用 --runInBand 串行排查资源竞争。
- 怎么测试依赖网络的代码?
- 用 jest.mock 把网络模块替换成 mock,或在 setup 里统一拦截请求,保证测试不依赖真实网络、可稳定重复。
- 覆盖率越高越好吗?
- 覆盖率是参考而非目标。优先覆盖关键逻辑与边界分支,别为了数字写无意义的断言;结合 --coverage 看未覆盖的行来补测试。