SuperAPI AI 工具集

jest

测试与质量

查看项目

更新于 10-16 05:49

技能介绍

用途:Jest 是 JavaScript/TypeScript 测试框架,用于单元测试、集成测试和快照测试,自带测试运行器、断言库、mock 系统和覆盖率报告。本技能提供 Jest 最佳实践、模式与 API 指导,适用于 JS/TS 单元与集成测试;React 组件测试可搭配 React Testing Library,API 契约测试可搭配 Supertest。E2E 浏览器测试建议用 Playwright 或 Cypress,更小更快的运行器可考虑 Vitest。

主要能力:按优先级组织规则,包括 mock 设计(clearAllMocks/resetAllMocks/restoreAllMocks 区别、spyOn 恢复、jest.mock 工厂提升限制、jest.requireActual 部分 mock)、异步测试(始终 await、expect.assertions、done 回调 try/catch)、匹配器(toBe/toEqual/toStrictEqual、浮点用 toBeCloseTo、toThrow 需包裹箭头函数)、定时器 mock(递归用 runOnlyPendingTimers、涉及 Promise 用异步定时器方法、doNotFake 选择性伪造)、测试结构(作用域、隔离、同步定义)、模块 mock(mocks 目录约定、ESM 用 jest.unstable_mockModule、jest.doMock + resetModules)、快照(保持小、属性匹配器、确定性)、配置(覆盖率阈值、transformIgnorePatterns、@jest-environment)以及性能与 CI(--runInBand/--maxWorkers、jest.isolateModules)。

使用方式:查阅各规则文件(如 rules/mock-clear-vs-reset-vs-restore.md、rules/async-always-await.md)获取说明与代码示例;参考 references 下的 matchers、mock-functions、jest-object、async-patterns、configuration、snapshot-testing、module-mocking、anti-patterns、ci-and-debugging 等文档。常用 API 包括 test、describe、beforeEach/afterEach、beforeAll/afterAll、expect、jest.fn、jest.spyOn、jest.mock、jest.useFakeTimers、jest.useRealTimers、jest.restoreAllMocks、jest.resetModules、jest.isolateModules、jest.requireActual。

限制:资料提示训练数据可能过时,Jest 29+ 引入异步定时器方法、jest.replaceProperty 和 ESM mock,Jest 30 弃用 done 回调;应以规则文件和项目源码为准,冲突时不要依赖记忆模式。本技能只覆盖 Jest 自身 API,框架特定模式需配合 msw、react-native-testing、zod-testing、redux-saga-testing、java-testing 等技能。