SuperAPI AI 工具集

jest-typescript

编程与开发

查看项目

更新于 10-15 17:28

技能介绍

用途:Jest + TypeScript 用于为 TypeScript 项目提供类型安全的单元测试、组件测试与覆盖率统计,资料称其为行业标准测试框架,市场占有率约 70%,生态成熟。

主要能力:一体化提供测试运行器、断言、Mock 与覆盖率;内置快照测试(含 toMatchSnapshot 与内联快照);通过 ts-jest 提供 TypeScript 类型安全;支持 Node.js、jsdom 浏览器环境与 React Native;集成 React Testing Library;内置 Istanbul/V8 覆盖率报告;支持 jest.mock、jest.spyOn、类型化 mock 函数(jest.fn 泛型)、假定时器、异步 Promise 与回调测试。

安装与配置:安装命令为 npm install -D jest @types/jest ts-jest;React 项目另需 npm install -D @testing-library/react @testing-library/jest-dom @testing-library/user-event 与 jest-environment-jsdom。可用 npx ts-jest config:init 生成 jest.config.js,或手写 jest.config.ts 设置 preset、testEnvironment、testMatch、collectCoverageFrom、coverageThreshold 等。需在 tsconfig.json 的 compilerOptions.types 中加入 jest 等类型。package.json 常用脚本:test、test:watch、test:coverage、test:ci。

使用方式:用 describe/it/expect 组织用例,支持 it.each 参数化;用 jest.mocked 包装模块函数并 mockResolvedValue;用 jest.useFakeTimers 配合 advanceTimersByTime、runAllTimers 控制时间;React 中使用 render、screen、userEvent 及 renderHook/act 测试 Hook;更新快照可用 jest -u 或 jest --updateSnapshot;覆盖率可用 npm test -- --coverage。

适用场景:需要成熟生态与广泛社区支持的项目、React 组件与 Hook 测试、从 Vitest 迁移(vi.fn→jest.fn、vi.spyOn→jest.spyOn,并替换配置文件与脚本)。

限制:资料未提供具体定价、性能对比数据、兼容版本范围与浏览器真实环境支持细节;部分迁移内容在给定资料中被截断,暂未提供完整迁移步骤。