# Test Writing

> Write comprehensive tests for code including unit tests, integration tests, and end-to-end tests. Use this to ensure code quality, catch bugs, and validate functionality.

- Skill: `majiayu000/test-writing-3` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/test-writing-3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/test-writing-3/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/test-writing-3

---


# Test Writing Skill

## Overview
Create thorough test coverage for software components.

## Workflow

1. **Analyze Code**: Understand what needs testing
2. **Identify Test Cases**:
   - Happy path scenarios
   - Edge cases
   - Error conditions
   - Boundary values
3. **Write Tests**: Create test files following project conventions
4. **Verify**: Run tests to ensure they pass
5. **Document**: Add test descriptions

## Test Types

### Unit Tests
- Test individual functions/methods
- Mock dependencies
- Fast execution
- High coverage

### Integration Tests
- Test component interactions
- Real dependencies when possible
- Test data flow
- API contracts

### End-to-End Tests
- Test complete user workflows
- Real environment
- Critical paths
- User scenarios

## Test Quality Standards

- Clear test names describing what is tested
- Arrange-Act-Assert pattern
- One assertion per test (generally)
- Independent tests (no shared state)
- Fast and reliable

## Tools

- `view`: To read code being tested
- `create_file`: To create new test files
- `run_terminal_command`: To execute test suites
- `grep_search`: To find existing tests

## Best Practices

- Test behavior, not implementation
- Cover edge cases thoroughly
- Keep tests maintainable
- Use descriptive test names
- Don't test framework code
- Mock external dependencies

