AGENT SKILL
testing-patterns
Testing patterns and principles. Unit, integration, mocking strategies.
使用场景测试与质量
- License 许可
- Apache-2.0
- 所属仓库
- yqecea/gem-swarm
- 最近更新
- 2026-04-26
- Stars
- ★ 1
- Forks
- 1
01 前言 Front Matter
- name
- testing-patterns
- description
- Testing patterns and principles. Unit, integration, mocking strategies.
- allowed-tools
- Read, Write, Edit, Glob, Grep, Bash
02 资源文件 1
- 脚本scripts/test_runner.py6.9 KB
03 SKILL.md 正文
Testing Patterns
Principles for reliable test suites.
1. Testing Pyramid
/\ E2E (Few)
/ \ Critical flows
/----\
/ \ Integration (Some)
/--------\ API, DB queries
/ \
/------------\ Unit (Many)
Functions, classes
2. AAA Pattern
| Step | Purpose |
|---|---|
| Arrange | Set up test data |
| Act | Execute code under test |
| Assert | Verify outcome |
3. Test Type Selection
When to Use Each
| Type | Best For | Speed |
|---|---|---|
| Unit | Pure functions, logic | Fast (<50ms) |
| Integration | API, DB, services | Medium |
| E2E | Critical user flows | Slow |
4. Unit Test Principles
Good Unit Tests
| Principle | Meaning |
|---|---|
| Fast | < 100ms each |
| Isolated | No external deps |
| Repeatable | Same result always |
| Self-checking | No manual verification |
| Timely | Written with code |
What to Unit Test
| Test | Don't Test |
|---|---|
| Business logic | Framework code |
| Edge cases | Third-party libs |
| Error handling | Simple getters |
5. Integration Test Principles
What to Test
| Area | Focus |
|---|---|
| API endpoints | Request/response |
| Database | Queries, transactions |
| External services | Contracts |
Setup/Teardown
| Phase | Action |
|---|---|
| Before All | Connect resources |
| Before Each | Reset state |
| After Each | Clean up |
| After All | Disconnect |
6. Mocking Principles
When to Mock
| Mock | Don't Mock |
|---|---|
| External APIs | The code under test |
| Database (unit) | Simple dependencies |
| Time/random | Pure functions |
| Network | In-memory stores |
Mock Types
| Type | Use |
|---|---|
| Stub | Return fixed values |
| Spy | Track calls |
| Mock | Set expectations |
| Fake | Simplified implementation |
7. Test Organization
Naming
| Pattern | Example |
|---|---|
| Should behavior | "should return error when..." |
| When condition | "when user not found..." |
| Given-when-then | "given X, when Y, then Z" |
Grouping
| Level | Use |
|---|---|
| describe | Group related tests |
| it/test | Individual case |
| beforeEach | Common setup |
8. Test Data
Strategies
| Approach | Use |
|---|---|
| Factories | Generate test data |
| Fixtures | Predefined datasets |
| Builders | Fluent object creation |
Principles
- Use realistic data
- Randomize non-essential values (faker)
- Share common fixtures
- Keep data minimal
9. Best Practices
| 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 |
10. Anti-Patterns
| ❌ 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.
04 同仓库更多 Skills
validation
Cross-cutting validation methodology for verifying phase outputs and project integrity
★ 1
session-management
Manages orchestration session state, tracking, and resumption
★ 1
implementation-planning
Generates detailed implementation plans from finalized designs
★ 1
execution
Phase execution methodology for orchestration workflows with error handling and completion protocols
★ 1
design-dialogue
Guides structured design conversations for complex engineering tasks
★ 1
delegation
Agent delegation best practices for constructing effective subagent prompts with proper scoping
★ 1