testing-patterns
Jest测试模式、工厂函数、模拟策略与TDD工作流。适用于编写单元测试、创建测试工厂或遵循TDD红-绿-重构循环时使用。
作者
分类
开发工具安装
热度:6
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-testing-patterns&locale=zh&source=copy
Testing Patterns - Jest 单元测试与 TDD 工作流指南
技能概述
Testing Patterns 提供 Jest 测试模式、工厂函数、Mock 策略和 TDD 工作流的完整指南,帮助开发者编写可维护的单元测试。
适用场景
当你需要为 React Native 组件、TypeScript 函数或业务逻辑编写单元测试时,使用本技能提供的测试结构、查询模式和断言方法。
当你需要为组件 Props 或数据对象创建可复用的测试数据工厂时,使用工厂模式避免重复代码并保持测试数据一致性。
当你采用测试驱动开发方式时,按照红-绿-重构的循环编写失败的测试、实现最小代码、然后重构优化。
核心功能
提供
getMockX(overrides?: Partial<X>) 形式的工厂函数,为组件 Props 和数据对象提供合理的默认值,同时允许按需覆盖特定属性,保持测试 DRY(Don't Repeat Yourself)。包含自定义渲染函数、三种查询模式(getBy、queryBy、findBy)以及用户交互测试(fireEvent)的完整用法,专为 React Native 测试优化。
涵盖模块 Mock、GraphQL 钩子 Mock、测试结构组织(describe/it 嵌套)以及 beforeEach 清理模式,帮助编写结构清晰、可维护的测试套件。
常见问题
什么是 TDD 红绿重构循环?
TDD(测试驱动开发)遵循三个步骤循环:首先编写一个失败的测试(Red),然后实现刚好足够通过测试的最小代码(Green),最后在测试通过的前提下重构优化代码(Refactor)。这个过程确保所有生产代码都有对应的测试覆盖,并且代码在重构过程中保持正确性。
如何编写测试工厂函数?
工厂函数遵循 getMockX(overrides?: Partial<X>) 模式,返回一个包含默认值的对象,并使用展开运算符合并覆盖项:
const getMockUser = (overrides?: Partial<User>): User => {
return {
id: '123',
name: 'John Doe',
email: 'john@example.com',
role: 'user',
...overrides,
};
};
// 使用时只需覆盖需要的属性
const adminUser = getMockUser({ role: 'admin' });Testing Library 的三种查询模式有什么区别?
选择原则:默认使用 getBy,验证不存在时使用 queryBy,异步内容使用 findBy。