testing-tdd-london
TDD London School (mockist) specialist for mock-driven, outside-in development. Use for behavior verification testing, contract-driven development, testing object collaborations, or when focusing on HOW objects interact rather than WHAT they contain.
Best use case
testing-tdd-london is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
TDD London School (mockist) specialist for mock-driven, outside-in development. Use for behavior verification testing, contract-driven development, testing object collaborations, or when focusing on HOW objects interact rather than WHAT they contain.
Teams using testing-tdd-london should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/testing-tdd-london/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How testing-tdd-london Compares
| Feature / Agent | testing-tdd-london | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
TDD London School (mockist) specialist for mock-driven, outside-in development. Use for behavior verification testing, contract-driven development, testing object collaborations, or when focusing on HOW objects interact rather than WHAT they contain.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Testing Tdd London
## Quick Start
```typescript
// 1. Start with acceptance test (outside)
describe('User Registration', () => {
it('should register new user successfully', async () => {
const mockRepository = { save: jest.fn().mockResolvedValue({ id: '123' }) };
const mockNotifier = { sendWelcome: jest.fn() };
const service = new UserService(mockRepository, mockNotifier);
await service.register({ email: 'test@example.com' });
// 2. Verify behavior (interactions)
expect(mockRepository.save).toHaveBeenCalledWith(
expect.objectContaining({ email: 'test@example.com' })
);
expect(mockNotifier.sendWelcome).toHaveBeenCalledWith('123');
});
});
```
## When to Use
- Testing object collaborations and message passing
- Contract-driven development with clear interfaces
- Outside-in development starting from user behavior
- When isolation of units is critical
- Service orchestration testing
- Testing HOW objects work together (not WHAT they contain)
## Prerequisites
- Understanding of mock objects vs stubs
- Jest, Vitest, or similar testing framework with mocking support
- Clear separation of concerns in architecture
- Dependency injection pattern in codebase
## References
- [London School TDD](https://github.com/testdouble/contributing-tests/wiki/London-school-TDD)
- [Mocks Aren't Stubs](https://martinfowler.com/articles/mocksArentStubs.html)
- [Growing Object-Oriented Software](http://www.growing-object-oriented-software.com/)
## Version History
- **1.0.0** (2026-01-02): Initial release - converted from tdd-london-swarm agent
## Sub-Skills
- [Configuration](configuration/SKILL.md)
- [Example 1: Service Orchestration Test (+2)](example-1-service-orchestration-test/SKILL.md)
- [Mock Management (+2)](mock-management/SKILL.md)
## Sub-Skills
- [Execution Checklist](execution-checklist/SKILL.md)
- [Error Handling](error-handling/SKILL.md)
## Sub-Skills
- [London vs Chicago School (+2)](london-vs-chicago-school/SKILL.md)
- [1. Outside-In Development (+2)](1-outside-in-development/SKILL.md)
- [Metrics & Success Criteria](metrics-success-criteria/SKILL.md)
- [MCP Tools (+2)](mcp-tools/SKILL.md)Related Skills
webapp-testing
Web application testing toolkit using Playwright with Python. Use for verifying frontend functionality, debugging UI behavior, capturing browser screenshots, viewing browser logs, and automating web interactions.
testing-production
Production validation specialist ensuring applications are fully implemented and deployment-ready. Use to verify no mock/stub/fake implementations remain, validate against real databases and APIs, perform end-to-end testing with actual systems, and confirm production readiness.
github-actions-2-matrix-builds-for-cross-platform-testing
Sub-skill of github-actions: 2. Matrix Builds for Cross-Platform Testing.
orcaflex-static-debug-incremental-static-testing
Sub-skill of orcaflex-static-debug: Incremental Static Testing (+1).
webapp-testing-wait-for-dynamic-content
Sub-skill of webapp-testing: Wait for Dynamic Content (+5).
webapp-testing-static-html
Sub-skill of webapp-testing: Static HTML (+2).
webapp-testing-start-server-before-testing
Sub-skill of webapp-testing: Start Server Before Testing (+1).
webapp-testing-slow-motion
Sub-skill of webapp-testing: Slow Motion (+3).
webapp-testing-example-1-screenshot-comparison-testing
Sub-skill of webapp-testing: Example 1: Screenshot Comparison Testing (+2).
webapp-testing-assertion-examples
Sub-skill of webapp-testing: Assertion Examples (+1).
devtools-testing-devtools-skills
Sub-skill of devtools: Testing DevTools Skills.
testing-tdd-london-mock-management
Sub-skill of testing-tdd-london: Mock Management (+2).