Engineering
tdd-london-chicago avatar

tdd-london-chicago

Implement professional TDD workflows using London (mock-based) and Chicago (state-based) schools to drive design through test-first development.

Introduction

The tdd-london-chicago skill provides an expert-level framework for practicing Test-Driven Development (TDD). It empowers software engineers to systematically apply the two primary schools of TDD: the London school, which focuses on interaction-based testing through mocks and stubs for isolated unit testing, and the Chicago school, which emphasizes state-based testing to verify observable outcomes against public APIs. By intelligently routing tasks to specialized agents like qe-test-generator, qe-test-implementer, and qe-test-refactorer, this skill enables a structured Red-Green-Refactor cycle that ensures code quality, maintainability, and design integrity from the very first line of code.

  • Automatically generates tests tailored to either the London or Chicago methodology based on the code architecture.

  • Orchestrates an iterative TDD cycle using specific sub-agents to handle test generation, implementation, and safe refactoring.

  • Provides clear guidance on style selection: choose Chicago for domain logic, value objects, and calculations; choose London for external service integrations, controllers, and complex collaborations.

  • Enforces strict design feedback loops where tests drive implementation, preventing over-engineering and ensuring that features are only built when covered by a failing test.

  • Integrates with the broader Agentic Quality Engineering fleet to maintain high coverage targets and perform quality gates.

  • Best practices include mocking only external dependencies while testing real domain objects to avoid 'mock-heavy' fragile test suites.

  • Inputs should define the target source code, desired test style, and specific feature goals.

  • Expected outputs include executable test files, minimal production code skeletons, and refactoring suggestions that preserve existing logic.

  • The tool is constrained by the necessity of a public API for state verification in the Chicago school and the need to avoid over-mocking internal implementation details to keep refactoring safe.

  • Ideal for senior engineers building complex services or teams mentoring developers on disciplined TDD practices and automated testing strategies.

Repository Stats

Stars
329
Forks
65
Open Issues
4
Language
TypeScript
Default Branch
main
Sync Status
Idle
Last Synced
Apr 28, 2026, 12:35 PM
View on GitHub