用途:这是 chriswiles/claude-code-showcase 中的测试模式技能,面向 Jest 单元测试场景,提供测试理念、工具函数与 Mock 策略的参考。
主要能力:给出测试驱动开发(先写失败测试、再实现最小代码、绿灯后重构)与行为驱动测试(测行为而非实现,关注公共 API 与业务需求)的准则;推荐工厂模式,用 getMockX(overrides?: Partial<X>) 函数提供合理默认值并允许覆盖特定属性。提供自定义渲染函数示例(如 renderWithTheme 包裹 ThemeProvider)、组件 props 工厂与数据工厂示例,以及模块 Mock、GraphQL Hook Mock 的写法(jest.mock 配合 jest.requireMock)。还包含测试结构(describe/beforeEach/jest.clearAllMocks)、查询模式(getByText、queryByText、waitFor、findByText)与用户交互模式(fireEvent.changeText、fireEvent.press)。
使用方式:运行测试使用 npm test;覆盖率使用 npm run test:coverage;指定文件使用 npm test ComponentName.test.tsx。测试中通过 renderWithTheme 渲染组件,用 getMockMyComponentProps、getMockUser 构造数据,用 jest.fn() 与 mockReturnValue 控制 Mock 返回值。
适用场景:React/React Native 组件的单元测试、测试数据构造、Mock 模块与 Hook、TDD 流程。可与 react-ui-patterns(覆盖 loading、error、empty、success 各状态)和 systematic-debugging(先写复现 bug 的测试再修复)配合。
限制与反模式:避免只测 Mock 调用而非真实行为;避免不用工厂函数导致测试数据重复不一致;保持每个测试聚焦单一行为,测试名称应描述行为,并注意在测试间清理 Mock。资料未提供具体安装方式、版本要求或收费信息。