mcpField
T
testing-patterns

testing-patterns

github.com/vudovnTesting & quality8.2k201 installsUpdated 9w ago
Repository

About testing-patterns

testing-patterns is a testing-practices guide for software developers, covering test selection, organization, and data. It emphasizes independent, fast, repeatable tests that verify behavior.

Key features

  1. 01Testing pyramid and test selection
  2. 02Arrange-Act-Assert pattern
  3. 03Unit and integration test principles
  4. 04Mock types and use cases
  5. 05Test organization and naming
  6. 06Test data strategies

Use cases

  1. 01Plan test levels for a new feature
  2. 02Write isolated, repeatable unit tests
  3. 03Set up integration test resources and cleanup
  4. 04Organize test data and case names

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/vudovn/ag-kit --skill testing-patterns

After installing, type/testing-patternsin Claude Code to confirm it loaded.

Bundled filesscripts/test_runner.py

Details

From the project README

Testing Patterns

Principles for reliable test suites.


1. Testing Pyramid

        /\          E2E (Few)
       /  \         Critical flows
      /----\
     /      \       Integration (Some)
    /--------\      API, DB queries
   /          \
  /------------\    Unit (Many)
                    Functions, classes

2. AAA Pattern

StepPurpose
ArrangeSet up test data
ActExecute code under test
AssertVerify outcome

3. Test Type Selection

When to Use Each
TypeBest ForSpeed
UnitPure functions, logicFast (<100ms)
IntegrationAPI, DB, servicesMedium
E2ECritical user flowsSlow

4. Unit Test Principles

Good Unit Tests
PrincipleMeaning
Fast< 100ms each
IsolatedNo external deps
RepeatableSame result always
Self-checkingNo manual verification
TimelyWritten with code
What to Unit Test
TestDon't Test
Business logicFramework code
Edge casesThird-party libs
Error handlingSimple getters

5. Integration Test Principles

What to Test
AreaFocus
API endpointsRequest/response
DatabaseQueries, transactions
External servicesContracts
Setup/Teardown
PhaseAction
Before AllConnect resources
Before EachReset state
After EachClean up
After AllDisconnect

6. Mocking Principles

When to Mock
MockDon't Mock
External APIsThe code under test
Database (unit)Simple dependencies
Time/randomPure functions
NetworkIn-memory stores
Mock Types
TypeUse
StubReturn fixed values
SpyTrack calls
MockSet expectations
FakeSimplified implementation

7. Test Organization

Naming
PatternExample
Should behavior"should return error when..."
When condition"when user not found..."
Given-when-then"given X, when Y, then Z"
Grouping
LevelUse
describeGroup related tests
it/testIndividual case
beforeEachCommon setup

8. Test Data

Strategies
ApproachUse
FactoriesGenerate test data
FixturesPredefined datasets
BuildersFluent object creation
Principles
  • Use realistic data
  • Randomize non-essential values (faker)
  • Share common fixtures
  • Keep data minimal

9. Best Practices

PracticeWhy
One assert per testClear failure reason
Independent testsNo order dependency
Fast testsRun frequently
Descriptive namesSelf-documenting
Clean upAvoid side effects

10. Anti-Patterns

❌ Don't✅ Do
Test implementationTest behavior
Duplicate test codeUse factories
Complex test setupSimplify or split
Ignore flaky testsFix root cause
Skip cleanupReset state

Remember: Tests are documentation. If someone can't understand what the code does from the tests, rewrite them.

Comments

Markdown supported