Agent Skills: Testing Strategies

>-

UncategorizedID: adaptive-enforcement-lab/claude-skills/testing-strategies

Install this agent skill to your local

pnpm dlx add-skill https://github.com/adaptive-enforcement-lab/claude-skills/tree/HEAD/plugins/build/skills/testing-strategies

Skill Files

Browse the full folder contents for testing-strategies.

Download Skill

Loading file tree…

plugins/build/skills/testing-strategies/SKILL.md

Skill Metadata

Name
testing-strategies
Description
>-

Testing Strategies

When to Use This Skill

A well-tested CLI uses different testing strategies at different levels. This section covers:


Implementation

See the full implementation guide in the source documentation.

Key Principles

| Practice | Description | | ---------- | ------------- | | Interface first | Design for testability with interfaces | | Table-driven tests | Cover edge cases systematically | | Parallel tests | Use t.Parallel() where safe | | Build tags | Separate integration tests with //go:build integration | | Clean up | Always clean up test resources |


Test at the right level. Unit tests catch logic bugs. Integration tests catch API issues. E2E tests catch workflow bugs.

Techniques

Overview

A well-tested CLI uses different testing strategies at different levels. This section covers:


Testing Pyramid

graph TB
    E2E[E2E Tests<br/>Full workflow in real cluster]
    Integration[Integration Tests<br/>Real API server with kind/envtest]
    Unit[Unit Tests<br/>Fake clients and mock interfaces]

    E2E --> Integration --> Unit

    %% Ghostty Hardcore Theme
    style E2E fill:#9e6ffe,color:#1b1d1e
    style Integration fill:#65d9ef,color:#1b1d1e
    style Unit fill:#a7e22e,color:#1b1d1e


Test Organization

myctl/
├── cmd/
│   ├── check.go
│   └── check_test.go        # Command tests
├── pkg/
│   ├── k8s/
│   │   ├── client.go
│   │   ├── client_test.go   # Unit tests with fakes
│   │   └── fake_client.go   # Test doubles
│   └── selector/
│       ├── selector.go
│       └── selector_test.go
└── test/
    ├── e2e/                  # E2E tests
    └── fixtures/             # Test resources

Makefile Targets

.PHONY: test test-unit test-integration test-e2e

test: test-unit

test-unit:
    go test -v -race ./...

test-integration:
    go test -v -tags=integration ./pkg/...

test-e2e:
    ./test/e2e/run.sh

Best Practices

| Practice | Description | | ---------- | ------------- | | Interface first | Design for testability with interfaces | | Table-driven tests | Cover edge cases systematically | | Parallel tests | Use t.Parallel() where safe | | Build tags | Separate integration tests with //go:build integration | | Clean up | Always clean up test resources |


Test at the right level. Unit tests catch logic bugs. Integration tests catch API issues. E2E tests catch workflow bugs.

Examples

See examples.md for code examples.

References