Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
asyrafhussin avatar

Testing Best Practices

  • 362 installs
  • 60 repo stars
  • Updated May 16, 2026
  • asyrafhussin/agent-skills

testing-best-practices is an agent skill that codifies 34 TypeScript testing rules across 7 categories for Jest and Vitest unit, integration, and TDD workflows before shipping features.

About

testing-best-practices is version 2.0.0 of asyrafhussin/agent-skills, an MIT-licensed guide containing 34 rules across 7 prioritized categories for TypeScript tests with Jest or Vitest. Categories span Test Structure (struct-*), Test Isolation (iso-*), Assertions (assert-*), Test Data (data-*), Mocking with MSW boundaries (mock-*), Coverage (cov-*), and Performance targets under 50ms per unit test (perf-*). Individual rule files live under rules/ and the compiled AGENTS.md expands every guideline with AAA, describe/it organization, factories, builders, and meaningful coverage guidance. Developers invoke testing-best-practices when writing new tests, reviewing PR test quality, debugging flaky suites, or setting CI-friendly testing strategy rather than improvising patterns ad hoc.

  • Test pyramid guidance
  • Fixture and mock patterns
  • Assertion clarity
  • CI-ready test suites
  • Regression coverage habits

Testing Best Practices by the numbers

  • 362 all-time installs (skills.sh)
  • Ranked #665 of 2,153 Testing & QA skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/asyrafhussin/agent-skills --skill testing-best-practices

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs362
repo stars60
Last updatedMay 16, 2026
Repositoryasyrafhussin/agent-skills

What are Jest and Vitest testing best practices?

Design unit, integration, and end-to-end tests with clear fixtures, assertions, coverage targets, and CI-friendly patterns before shipping features.

Who is it for?

TypeScript developers standardizing Jest or Vitest test quality across a team with a named rule catalog and worked examples.

Skip if: Non-TypeScript test stacks like pytest or JUnit, or teams needing framework setup scaffolding instead of test design principles.

When should I use this skill?

A developer asks to write tests, review test code, improve coverage strategy, debug flaky tests, or follow TDD best practices.

What you get

Tests following AAA structure, isolated fixtures, boundary mocks, meaningful coverage choices, and CI-friendly suites aligned to 34 named rules.

  • Rule-compliant unit and integration tests
  • Test review guidance
  • CI-friendly test organization

By the numbers

  • Version 2.0.0 with 34 rules across 7 categories
  • Targets unit tests under 50ms each via perf-fast-unit
  • MIT licensed agent-skills package

Files

SKILL.mdMarkdownGitHub ↗

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

Related skills

How it compares

Use testing-best-practices for opinionated TypeScript Jest/Vitest rule catalogs; pair with framework-specific setup skills when bootstrapping new test infrastructure.

FAQ

How many rules does testing-best-practices include?

testing-best-practices version 2.0.0 documents 34 rules organized into 7 categories: Test Structure, Test Isolation, Assertions, Test Data, Mocking, Coverage, and Performance, each with a prefixed rule ID like struct-aaa-pattern.

Which test runners does testing-best-practices target?

testing-best-practices uses TypeScript examples for Jest and Vitest, references Testing Library for component tests, and recommends MSW for realistic HTTP mocking at system boundaries instead of over-mocking internals.

Where are detailed testing-best-practices explanations?

testing-best-practices stores per-rule markdown files under rules/, such as rules/struct-aaa-pattern.md and rules/mock-boundaries.md, with a full compiled guide available in AGENTS.md at the skill root.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.