Skip to content
Back to skills

Testing Best Practices

ASecurity

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".

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 21, 2026
testingtypescriptgotestingdebuggingperformancedocumentation

Security analysis

A100/100

Pro scans all 18 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill testing-best-practices --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Testing Best Practices?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Testing Best Practices
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-testing-best-practices/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-testing-best-practices)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: testing-best-practices
description: 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".
license: MIT
metadata:
  author: agent-skills
  version: "2.0.0"
---

# 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

| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Test Structure | CRITICAL | `struct-` |
| 2 | Test Isolation | CRITICAL | `iso-` |
| 3 | Assertions | HIGH | `assert-` |
| 4 | Test Data | HIGH | `data-` |
| 5 | Mocking | MEDIUM | `mock-` |
| 6 | Coverage | MEDIUM | `cov-` |
| 7 | Performance | LOW | `perf-` |

## 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)

```typescript
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

```typescript
// ✅ 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

```typescript
// ✅ 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

- [Vitest Documentation](https://vitest.dev)
- [Jest Documentation](https://jestjs.io)
- [Testing Library](https://testing-library.com)
- [MSW (Mock Service Worker)](https://mswjs.io)

## Full Compiled Document

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

Files in this skill

  • README.md1.6 KB
  • SKILL.md4.4 KB
  • rules/_sections.md2.3 KB
  • rules/_template.md1.3 KB
  • rules/assert-custom-matchers.md5.4 KB
  • rules/assert-expected-actual.md3.3 KB
  • rules/assert-meaningful-messages.md4.7 KB
  • rules/assert-no-magic-numbers.md4.7 KB
  • rules/assert-specific.md4.2 KB
  • rules/cov-edge-cases.md4.1 KB
  • rules/cov-meaningful.md4.1 KB
  • rules/cov-not-100-percent.md4.1 KB
  • rules/cov-unhappy-paths.md4.5 KB
  • rules/data-builders.md5 KB
  • rules/data-factories.md5.7 KB
  • rules/data-faker.md5.2 KB
  • rules/data-fixtures.md5.4 KB
  • rules/data-minimal.md5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…