AgentSkillsCN

testing-patterns

编写具有适当结构和覆盖率的有效测试。在编写单元测试、集成测试或提高测试质量时使用。

SKILL.md
--- frontmatter
name: testing-patterns
description: Write effective tests with proper structure and coverage. Use when writing unit tests, integration tests, or improving test quality.
allowed-tools: Read, Write, Edit, Grep, Glob, Bash

Testing Patterns Skill

Help write clear, maintainable, effective tests.

Test Structure (AAA Pattern)

code
// Arrange - Set up test data and conditions
// Act - Execute the code under test
// Assert - Verify the expected outcome

Naming Convention

code
test_[unit]_[scenario]_[expected result]

Examples:
- test_calculateTotal_withEmptyCart_returnsZero
- test_login_withInvalidPassword_throwsAuthError
- test_fetchUser_whenNotFound_returns404

What to Test

Unit Tests

  • Pure functions and calculations
  • Business logic
  • Edge cases and boundaries
  • Error conditions

Integration Tests

  • API endpoints
  • Database operations
  • External service interactions
  • Authentication flows

Do NOT Test

  • Framework/library internals
  • Private methods directly
  • Trivial getters/setters
  • Third-party code

Test Quality Checklist

  • Tests one thing only
  • Clear test name describes behavior
  • Independent (no test order dependency)
  • Fast (mock external dependencies)
  • Deterministic (no flaky tests)
  • Readable (future you is the audience)

Mocking Guidelines

Mock:

  • External APIs
  • Database (for unit tests)
  • Time/dates
  • Random values
  • File system (when appropriate)

Don't mock:

  • The thing you're testing
  • Simple value objects
  • Everything (leads to brittle tests)

Coverage Strategy

Focus on:

  • Critical business logic: 90%+
  • Happy paths: 100%
  • Error paths: 80%+
  • Edge cases: Case by case

Avoid:

  • Chasing 100% blindly
  • Testing implementation details
  • Duplicate coverage