mcpField
T
testing-patterns

testing-patterns

github.com/vudovn测试与质量8.2k201 次安装9 周前更新
代码仓库

关于 testing-patterns

testing-patterns 是面向软件开发者的测试实践指南,涵盖测试类型选择、组织和数据管理。它强调独立、快速、可重复的测试及按行为验证。

主要功能

  1. 01测试金字塔与类型选择
  2. 02AAA 测试步骤
  3. 03单元与集成测试原则
  4. 04Mock 类型与使用场景
  5. 05测试组织和命名
  6. 06测试数据策略

适用场景

  1. 01为新功能规划测试层级
  2. 02编写独立且可重复的单元测试
  3. 03设置集成测试的资源与清理
  4. 04整理测试数据和用例命名

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/vudovn/ag-kit --skill testing-patterns

安装后在 Claude Code 中输入/testing-patterns确认已加载。

附带文件scripts/test_runner.py

详细介绍

测试模式

构建可靠测试套件的原则。


1. 测试金字塔

        /\          E2E (Few)
       /  \         Critical flows
      /----\
     /      \       Integration (Some)
    /--------\      API, DB queries
   /          \
  /------------\    Unit (Many)
                    Functions, classes

2. AAA 模式

步骤用途
Arrange(准备)设置测试数据
Act(执行)执行待测代码
Assert(断言)验证结果

3. 测试类型选择

何时使用各类型
类型最适用于速度
单元测试纯函数、逻辑快(<100ms)
集成测试API、DB、服务中等
端到端测试关键用户流程慢

4. 单元测试原则

良好的单元测试
原则含义
快速每个 < 100ms
隔离不依赖外部内容
可重复结果始终相同
自检无需人工验证
及时与代码一同编写
单元测试的内容
要测试不要测试
业务逻辑框架代码
边界情况第三方库
错误处理简单的 getter

5. 集成测试原则

测试内容
范围重点
API 端点请求/响应
数据库查询、事务
外部服务合约
设置/清理
阶段操作
全部之前连接资源
每项之前重置状态
每项之后清理
全部之后断开连接

6. 模拟原则

何时使用模拟
模拟不要模拟
外部 API待测代码
数据库(单元测试)简单依赖
时间/随机数纯函数
网络内存存储
模拟类型
类型用途
Stub返回固定值
Spy跟踪调用
Mock设置预期
Fake简化实现

7. 测试组织

命名
模式示例
描述应有行为“应在……时返回错误”
描述条件“当用户未找到时……”
Given-when-then“给定 X,当 Y 时,则 Z”
分组
层级用途
describe对相关测试分组
it/test单个用例
beforeEach通用设置

8. 测试数据

策略
方法用途
工厂生成测试数据
Fixtures预定义数据集
Builder流畅地创建对象
原则
  • 使用真实的数据
  • 随机化非必要值(faker)
  • 共享常用 fixtures
  • 尽量精简数据

9. 最佳实践

实践原因
每个测试只做一个断言失败原因清晰
测试相互独立不依赖执行顺序
保持测试快速频繁运行
使用描述性名称自我说明
做好清理避免副作用

10. 反模式

❌ 不要✅ 应该
测试实现细节测试行为
重复测试代码使用工厂
复杂的测试设置简化或拆分
忽视不稳定的测试修复根本原因
跳过清理重置状态

请记住: 测试就是文档。如果有人无法通过测试理解代码的作用,就重写测试。

评论

支持 Markdown