๐Ÿงช
QualityPython

Writing Good Tests

by ed3dai

Writing Good Tests is a Quality skill for Claude Code, published by ed3dai in ed3d-plugins.

248 stars32 forkson ed3dai/ed3d-pluginsAdded 2026/09/02Repository updated 2026/06/16
claudeclaude-codeclaude-code-pluginclaude-code-plugin-marketplaceskills
Install in seconds
Install Writing Good Tests
Copy Writing Good Tests into your Claude Code skills folder. Run the command in your terminal, or review the source on GitHub before installing.
terminal
npx degit https://github.com/ed3dai/ed3d-plugins/tree/main/plugins/ed3d-house-style/skills/writing-good-tests ~/.claude/skills/writing-good-tests

Requires Node.js. Downloads this skill only โ€” not the rest of the repository โ€” into your Claude Code skills folder.

Without Node.js

git clone https://github.com/ed3dai/ed3d-plugins.git

Clones the whole repository, then copy the skillโ€™s own directory into your skills folder yourself.

In this catalog

Source file
plugins/ed3d-house-style/skills/writing-good-tests/SKILL.md in ed3dai/ed3d-plugins
Installs to
~/.claude/skills/writing-good-tests
Collection
One of 25 skills cataloged from this repository
Category
Quality โ€” 1418 skills

What Writing Good Tests does

Writing Good Tests helps you write and review tests that verify behavior, wait on real conditions, and use mocks only where they fit. Use it for test philosophy, isolation, and avoiding flaky patterns.

Writing Good Tests is cataloged under Quality on DirSkills. Writing Good Tests comes from a repository tagged claude, claude-code, claude-code-plugin, claude-code-plugin-marketplace and skills.

Documentation

README

Writing Good Tests

Philosophy

"Write tests. Not too many. Mostly integration." โ€” Kent C. Dodds

Tests verify real behavior, not implementation details. The goal is confidence that your code works, not coverage numbers.

Core principles:

  1. Test behavior, not implementation โ€” refactoring shouldn't break tests
  2. Integration tests provide better confidence-to-cost ratio than unit tests
  3. Wait for actual conditions, not arbitrary timeouts
  4. Mock strategically โ€” real dependencies when feasible, mocks for external systems
  5. Don't pollute production code with test-only methods

Test Structure

Use Arrange-Act-Assert (or Given-When-Then):

This is the opening of the README. Read the full README on GitHub.

Frequently asked about Writing Good Tests

  • What else does ed3dai publish alongside Writing Good Tests?

    Writing Good Tests is one of 25 skills that DirSkills catalogs from ed3dai/ed3d-plugins, the repository it ships in. Its siblings there include Asking Clarifying Questions, Brainstorming and Coding Effectively. Each one is a separate skill with its own page in this directory, installs the same way Writing Good Tests does, and is maintained by ed3dai in that same repository. The rest of the collection is listed on the ed3dai/ed3d-plugins page.

  • How does Writing Good Tests compare to other Quality skills?

    Writing Good Tests ranks #1299 by stars among the 1418 Quality skills in this catalog. The most-starred ones next to it are Benchmark, Benchmark Optimization Loop and API Design Patterns. DirSkills ranks by the star count of the repository each skill ships in, so that order reflects how popular those repositories are rather than any review of Writing Good Tests against them. Open each page to compare what they document and how they install.

More from ed3dai/ed3d-plugins

Writing Good Tests is one of 25 skills cataloged on DirSkills from ed3dai/ed3d-plugins.

See all 25 skills โ†’
โ“
1h ago

Asking Clarifying Questions

Asking Clarifying Questions helps narrow ambiguous requirements before brainstorming by resolving contradictions, defining scope, and checking assumptions. Use it after initial context is gathered to avoid designing the wrong solution.
AI Engineering
24832
๐Ÿ’ก
1h ago

Brainstorming

Brainstorming turns rough ideas into structured designs through guided questions, alternatives, and stepwise validation. Use it before implementation or planning to clarify goals, constraints, and approach.
AI Engineering
24832
๐Ÿ› ๏ธ
1h ago

Coding Effectively

Coding Effectively guides writing and refactoring code with correctness, explicit error handling, property-driven design, and clear module organization. Use it when implementing features, reviewing code, or choosing patterns across languages and runtimes.
Quality
24832
๐Ÿงฉ
1h ago

Creating A Plugin

Creating A Plugin explains how to structure a Claude Code plugin and write its manifest. Use it when packaging commands, agents, skills, hooks, or MCP servers for reuse across projects.
AI Engineering
24832
๐Ÿค–
1h ago

Creating an Agent

Creating an Agent explains how to design specialized subagents for Claude Code plugins or the Task tool. It covers trigger descriptions, tool limits, prompt structure, and testing agents.
AI Engineering
24832
๐Ÿ›ก๏ธ
1h ago

Defense In Depth

Defense In Depth validates data at every layer it passes through so invalid values are caught by entry, business, environment, and debug checks. Use it when bad input causes failures deep in execution or tests bypass earlier validation.
Quality
24832