Test-driven development uses tests to drive project development through a repeated cycle: specify behavior, implement minimally, then improve the design. section 2.3
Repeat these stages for each test case:
- Write a failing test that identifies the required functionality and expected behavior. section 2.3
- Write only enough code to make the test pass; elegance can wait. section 2.3
- Refactor under the protection of the passing test to improve readability and maintainability. section 2.3
The London style leads to outside-in TDD: higher-level tests define system expectations, mocks specify collaborator communication, and implementation proceeds through the class graph. section 2.3














