# Write Unit Tests

> Write meaningful unit tests for target code

- Skill: `emaraschio/write-unit-tests` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add emaraschio/write-unit-tests`
- Raw SKILL.md: https://api.skillmd.com/api/skills/emaraschio/write-unit-tests/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: emaraschio (https://skillmd.com/u/emaraschio)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/emaraschio/write-unit-tests

---

## Overview

Create comprehensive unit tests for the current code and generate the test file with proper imports and setup according to the project's testing conventions.

## Steps

1. **Test Coverage**
    - Test all public methods and functions
    - Cover edge cases and error conditions
    - Test both positive and negative scenarios
    - Aim for high code coverage
2. **Test Structure**
    - Use the project's testing framework conventions
    - Write clear, descriptive test names
    - Follow the Arrange-Act-Assert pattern
    - Group related tests logically
3. **Test Cases to Include**
    - Happy path scenarios
    - Edge cases and boundary conditions
    - Error handling and exception cases
    - Mock external dependencies appropriately
4. **Test Quality**
    - Make tests independent and isolated
    - Ensure tests are deterministic and repeatable
    - Keep tests simple and focused on one thing
    - Add helpful assertion messages

## Write Unit Tests Checklist

- [ ] Tested all public methods and functions
- [ ] Covered edge cases and error conditions
- [ ] Tested both positive and negative scenarios
- [ ] Used the project's testing framework conventions
- [ ] Written clear, descriptive test names
- [ ] Followed the Arrange-Act-Assert pattern
- [ ] Included happy path scenarios
- [ ] Included edge cases and boundary conditions
- [ ] Mocked external dependencies appropriately
- [ ] Made tests independent and isolated
- [ ] Ensured tests are deterministic and repeatable

## Guardrails

- Test observable behavior and public contracts, not implementation trivia.
- Mock only external boundaries (network, clock, filesystem); use real objects for the rest.
- Do not commit, push, merge, or run destructive commands without explicit user consent.
- Do not print, log, or commit secrets or credentials found in the code or test fixtures; flag any exposure instead.
