testing-patterns by vudovn/antigravity-kit
npx skills add https://github.com/vudovn/antigravity-kit --skill testing-patterns可靠测试套件的原则。
/\ 端到端测试(少量)
/ \ 关键流程
/----\
/ \ 集成测试(适量)
/--------\ API、数据库查询
/ \
/------------\ 单元测试(大量)
函数、类
| 步骤 | 目的 |
|---|---|
| 准备 | 设置测试数据 |
| 执行 | 执行待测代码 |
| 断言 | 验证结果 |
| 类型 | 最适合 | 速度 |
|---|
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 单元测试 | 纯函数、逻辑 | 快 (<50ms) |
| 集成测试 | API、数据库、服务 | 中等 |
| 端到端测试 | 关键用户流程 | 慢 |
| 原则 | 含义 |
|---|---|
| 快速 | 每个 < 100ms |
| 隔离 | 无外部依赖 |
| 可重复 | 结果始终一致 |
| 自检 | 无需人工验证 |
| 及时 | 与代码一同编写 |
| 应该测试 | 不要测试 |
|---|---|
| 业务逻辑 | 框架代码 |
| 边界情况 | 第三方库 |
| 错误处理 | 简单的 getter |
| 领域 | 关注点 |
|---|---|
| API 端点 | 请求/响应 |
| 数据库 | 查询、事务 |
| 外部服务 | 契约 |
| 阶段 | 操作 |
|---|---|
| 所有测试前 | 连接资源 |
| 每个测试前 | 重置状态 |
| 每个测试后 | 清理 |
| 所有测试后 | 断开连接 |
| 应该模拟 | 不要模拟 |
|---|---|
| 外部 API | 待测代码 |
| 数据库(单元测试) | 简单依赖 |
| 时间/随机数 | 纯函数 |
| 网络 | 内存存储 |
| 类型 | 用途 |
|---|---|
| 存根 | 返回固定值 |
| 间谍 | 跟踪调用 |
| 模拟 | 设置期望 |
| 伪造 | 简化实现 |
| 模式 | 示例 |
|---|---|
| 应该行为 | "当...时应该返回错误" |
| 当条件 | "当用户未找到时..." |
| 给定-当-那么 | "给定 X,当 Y,那么 Z" |
| 层级 | 用途 |
|---|---|
| describe | 分组相关测试 |
| it/test | 单个测试用例 |
| beforeEach | 通用设置 |
| 方法 | 用途 |
|---|---|
| 工厂 | 生成测试数据 |
| 夹具 | 预定义数据集 |
| 构建器 | 流式对象创建 |
| 实践 | 原因 |
|---|---|
| 每个测试一个断言 | 失败原因清晰 |
| 测试独立 | 无顺序依赖 |
| 测试快速 | 频繁运行 |
| 描述性名称 | 自文档化 |
| 清理 | 避免副作用 |
| ❌ 不要 | ✅ 要做 |
|---|---|
| 测试实现 | 测试行为 |
| 重复测试代码 | 使用工厂 |
| 复杂的测试设置 | 简化或拆分 |
| 忽略不稳定测试 | 修复根本原因 |
| 跳过清理 | 重置状态 |
记住: 测试就是文档。如果别人无法通过测试理解代码的功能,就重写它们。
每周安装量
102
代码仓库
GitHub 星标数
6.7K
首次出现
2026 年 1 月 21 日
安全审计
安装于
gemini-cli86
codex84
opencode81
cursor74
github-copilot74
antigravity66
Principles for reliable test suites.
/\ E2E (Few)
/ \ Critical flows
/----\
/ \ Integration (Some)
/--------\ API, DB queries
/ \
/------------\ Unit (Many)
Functions, classes
| Step | Purpose |
|---|---|
| Arrange | Set up test data |
| Act | Execute code under test |
| Assert | Verify outcome |
| Type | Best For | Speed |
|---|---|---|
| Unit | Pure functions, logic | Fast (<50ms) |
| Integration | API, DB, services | Medium |
| E2E | Critical user flows | Slow |
| Principle | Meaning |
|---|---|
| Fast | < 100ms each |
| Isolated | No external deps |
| Repeatable | Same result always |
| Self-checking | No manual verification |
| Timely | Written with code |
| Test | Don't Test |
|---|---|
| Business logic | Framework code |
| Edge cases | Third-party libs |
| Error handling | Simple getters |
| Area | Focus |
|---|---|
| API endpoints | Request/response |
| Database | Queries, transactions |
| External services | Contracts |
| Phase | Action |
|---|---|
| Before All | Connect resources |
| Before Each | Reset state |
| After Each | Clean up |
| After All | Disconnect |
| Mock | Don't Mock |
|---|---|
| External APIs | The code under test |
| Database (unit) | Simple dependencies |
| Time/random | Pure functions |
| Network | In-memory stores |
| Type | Use |
|---|---|
| Stub | Return fixed values |
| Spy | Track calls |
| Mock | Set expectations |
| Fake | Simplified implementation |
| Pattern | Example |
|---|---|
| Should behavior | "should return error when..." |
| When condition | "when user not found..." |
| Given-when-then | "given X, when Y, then Z" |
| Level | Use |
|---|---|
| describe | Group related tests |
| it/test | Individual case |
| beforeEach | Common setup |
| Approach | Use |
|---|---|
| Factories | Generate test data |
| Fixtures | Predefined datasets |
| Builders | Fluent object creation |
| Practice | Why |
|---|---|
| One assert per test | Clear failure reason |
| Independent tests | No order dependency |
| Fast tests | Run frequently |
| Descriptive names | Self-documenting |
| Clean up | Avoid side effects |
| ❌ Don't | ✅ Do |
|---|---|
| Test implementation | Test behavior |
| Duplicate test code | Use factories |
| Complex test setup | Simplify or split |
| Ignore flaky tests | Fix root cause |
| Skip cleanup | Reset state |
Remember: Tests are documentation. If someone can't understand what the code does from the tests, rewrite them.
Weekly Installs
102
Repository
GitHub Stars
6.7K
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubFailSocketPassSnykPass
Installed on
gemini-cli86
codex84
opencode81
cursor74
github-copilot74
antigravity66
后端测试指南:API端点、业务逻辑与数据库测试最佳实践
11,800 周安装