用途
jest-skill 用于生成 Jest 单元测试和集成测试,支持 JavaScript 或 TypeScript。当用户需要编写、补全或参考 Jest 测试代码时,该技能可提供可直接使用的测试模式与示例。
主要能力
该技能覆盖以下测试主题:
- 基础测试结构:使用 describe、beforeEach、test 组织测试用例。
- 匹配器:包括 toBe、toEqual、toBeTruthy、toBeNull、toBeGreaterThan、toBeCloseTo、toMatch、toContain、toHaveLength、toHaveProperty、toMatchObject、toThrow 等。
- 模拟(Mocking):jest.fn() 模拟函数、mockReturnValue、mockResolvedValue、toHaveBeenCalledWith、toHaveBeenCalledTimes;jest.mock() 模拟模块;带实现的模块模拟;jest.spyOn 间谍;jest.useFakeTimers 假定时器与 advanceTimersByTime。
- 异步测试:async/await 测试、resolves 与 rejects 断言。
- React 组件测试:结合 @testing-library/react 与 @testing-library/jest-dom,使用 render、screen、fireEvent、waitFor 进行表单提交等交互测试。
- 快照测试:使用 react-test-renderer 的 toMatchSnapshot,以及通过 jest --updateSnapshot 更新快照。
- 反模式对照:列出不良写法与推荐写法及其原因,例如直接断言布尔表达式、异步未 await、过度快照。
- 快速命令参考:npx jest、--watch、--coverage、--updateSnapshot、指定文件运行、test.only 等。
使用方式
该技能以示例代码和模式说明的形式提供测试写法。用户可参考其中的代码片段编写测试,并通过快速参考中的命令运行测试。对于更深入的生产级模式,技能指向 reference/playbook.md,其中包含:
- §1 生产配置:Node 与 React 配置、路径别名、覆盖率阈值。
- §2 模拟深入:模块/部分/手动模拟、间谍、定时器、环境变量。
- §3 异步模式:Promise、拒绝、事件发射器、流。
- §4 test.each:数组、标签模板、describe.each 表驱动测试。
- §5 自定义匹配器:toBeWithinRange、toBeValidEmail、TypeScript 声明。
- §6 React Testing Library:userEvent、hooks、context providers。
- §7 快照测试:组件、内联、属性匹配器。
- §8 API 服务测试:模拟 axios、CRUD 模式、错误处理。
- §9 全局设置:多项目配置、数据库 setup/teardown。
- §10 CI/CD:带覆盖率门禁的 GitHub Actions。
- §11 调试表:10 个常见问题及修复。
- §12 最佳实践:15 项生产检查清单。
适用场景
适用于需要编写 Jest 测试的 JavaScript 或 TypeScript 项目,包括单元测试、集成测试、React 组件测试、异步逻辑测试、模块模拟与快照测试等场景。
限制
资料未提供该技能的安装方式、收费信息、支持平台或具体运行环境要求,这些内容暂未提供。