MCPInstall

testing-best-practices

Unit testing, integration testing, and test-driven development principles. Use when writing tests, reviewing test code, improving test coverage, or setting up testing strategy. Triggers on "write tests", "review tests", "testing best practices", or "TDD".

Installs
909
Last 24h
+10
Trending rank
#8822
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/asyrafhussin/agent-skills --skill testing-best-practices
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads testing-best-practices automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Testing Best Practices

Unit testing, integration testing, and TDD principles for reliable, maintainable test suites. Contains 34 rules across 7 categories using TypeScript with Jest/Vitest.

Metadata

  • Version: 2.0.0
  • Rule Count: 34 rules across 7 categories
  • License: MIT

When to Apply

Reference these guidelines when:

  • Writing unit or integration tests
  • Reviewing test code quality
  • Improving test coverage strategy
  • Setting up testing infrastructure
  • Debugging flaky or slow tests

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Test StructureCRITICALstruct-
2Test IsolationCRITICALiso-
3AssertionsHIGHassert-
4Test DataHIGHdata-
5MockingMEDIUMmock-
6CoverageMEDIUMcov-
7PerformanceLOWperf-

Quick Reference

1. Test Structure (CRITICAL)

  • struct-aaa-pattern - Arrange, Act, Assert pattern
  • struct-descriptive-names - Descriptive test names
  • struct-one-assertion - One logical assertion per test
  • struct-describe-it - Organized test suites with describe/it
  • struct-given-when-then - BDD style when appropriate
  • struct-setup-teardown - Proper setup and teardown

2. Test Isolation (CRITICAL)

  • iso-independent-tests - Tests run independently
  • iso-no-shared-state - No shared mutable state
  • iso-deterministic - Same result every run
  • iso-no-order-dependency - Run in any order
  • iso-cleanup - Clean up after tests
  • iso-test-doubles - Strategic use of test doubles

3. Assertions (HIGH)

  • assert-specific - Use specific assertions
  • assert-meaningful-messages - Helpful failure messages
  • assert-expected-actual - Expected value first
  • assert-no-magic-numbers - Use named constants
  • assert-custom-matchers - Custom matchers for domain logic

4. Test Data (HIGH)

  • data-factories - Use factories for test data
  • data-builders - Builder pattern for complex objects
  • data-faker - Generate realistic fake data
  • data-minimal - Minimal test data
  • data-realistic - Realistic edge cases
  • data-fixtures - Manage test fixtures

5. Mocking (MEDIUM)

  • mock-boundaries - Mock only at boundaries
  • mock-verify-interactions - Verify important mock calls
  • mock-minimal - Don't over-mock
  • mock-realistic - Realistic mock behavior with MSW

6. Coverage (MEDIUM)

  • cov-meaningful - Focus on meaningful coverage
  • cov-edge-cases - Cover edge cases and boundary values
  • cov-unhappy-paths - Test error scenarios
  • cov-not-100-percent - 100% coverage isn't the goal

7. Performance (LOW)

  • perf-fast-unit - Keep unit tests fast (<50ms each)
  • perf-parallel - Run tests in parallel
  • perf-test-organization - Organize tests for fast feedback

Essential Guidelines

AAA Pattern (Arrange, Act, Assert)

it('calculates total with discount', () => {
  // Arrange
  const cart = new ShoppingCart();
  cart.addItem({ name: 'Book', price: 20 });
  cart.applyDiscount(0.1);

  // Act
  const total = cart.getTotal();

  // Assert
  expect(total).toBe(18);
});

Descriptive Test Names

// ✅ Describes behavior and scenario
describe('UserService.register', () => {
  it('creates user with hashed password', () => {});
  it('throws ValidationError when email is invalid', () => {});
  it('sends welcome email after successful registration', () => {});
});

Test Isolation

// ✅ Each test sets up its own data
beforeEach(() => {
  mockRepository = { save: vi.fn(), find: vi.fn() };
  service = new OrderService(mockRepository);
});

How to Use

Read individual rule files for detailed explanations:

rules/struct-aaa-pattern.md
rules/iso-independent-tests.md
rules/mock-boundaries.md
rules/cov-meaningful.md

References

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

FAQ

What does the testing-best-practices skill do?

Unit testing, integration testing, and test-driven development principles. Use when writing tests, reviewing test code, improving test coverage, or setting up testing strategy. Triggers on "write tests", "review tests", "testing best practices", or "TDD".

How do I install testing-best-practices?

Run npx skills add https://github.com/asyrafhussin/agent-skills --skill testing-best-practices in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/testing-best-practices/ (personal) or .claude/skills/testing-best-practices/ (project).

Which AI agents can use testing-best-practices?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is testing-best-practices safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains testing-best-practices?

It is published by asyrafhussin in asyrafhussin/agent-skills. It has 909 recorded installs.

More from asyrafhussin/agent-skills

View all →

php-best-practices

asyrafhussin/agent-skills

PHP 8.x modern patterns, PSR standards, and SOLID principles. Use when reviewing PHP code, checking type safety, auditing code quality, or ensuring PHP best practices. Triggers on "review PHP", "check PHP code", "audit PHP", or "PHP best practices".

Backend & APIs3.7K installs

react-vite-best-practices

asyrafhussin/agent-skills

React and Vite performance optimization guidelines. Use when writing, reviewing, or optimizing React components built with Vite. Triggers on tasks involving Vite configuration, build optimization, code splitting, lazy loading, HMR, bundle size, or React performance.

Frontend & Design2.9K installs

laravel-best-practices

asyrafhussin/agent-skills

Laravel 13 conventions and best practices. Use when creating controllers, models, migrations, validation, services, or structuring Laravel applications. Triggers on tasks involving Laravel architecture, Eloquent, database, API development, or PHP patterns.

Backend & APIs2.3K installs

laravel-inertia-react

asyrafhussin/agent-skills

Laravel + Inertia.js + React integration patterns. Use when building Inertia page components, handling forms with useForm, managing shared data, or implementing persistent layouts. Triggers on tasks involving Inertia.js, page props, form handling, or Laravel React integration.

clean-code-principles

asyrafhussin/agent-skills

SOLID principles, design patterns, DRY, KISS, and clean code fundamentals. Use when reviewing architecture, checking code quality, refactoring, or discussing design decisions. Triggers on "review architecture", "check code quality", "SOLID principles", "design patterns", or "clean code".

typescript-react-patterns

asyrafhussin/agent-skills

TypeScript best practices for React development. Use when writing typed React components, hooks, events, refs, or generic components. Triggers on tasks involving TypeScript errors, type definitions, props typing, or type-safe React patterns.

Frontend & Design1.1K installs

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs