Introduction to TDD
  • What is TDD
  • The Test Driven Development cycle
  • Why TDD?
Demonstrating TDD, through walkthroughs and exercises
  • Let's get started, introducing our example app
  • Demonstrating the reverse polish calculator
  • TDD walkthrough part 1
  • TDD walkthrough part 2
  • TDD walkthrough part 3
  • Walkthrough summary, common questions
Real world TDD Part 1 : Design enabling test
  • Introduction to real world testing
  • Introducing SOLID design principles
  • Single responsibility principle
  • Open closed principle
  • Liskov substitution
  • Interface seggregation
  • Dependency inversion
Real world TDD Part 2 : Test doubles
  • Introducing test doubles
  • Stubs
  • Fakes
  • Mocks
  • Demonstrating Test Doubles
  • Mock frameworks
Testing legacy code
  • Dealing with legacy code
  • Demonstration of testing legacy code
  • Legacy code summary
Test principles
  • Test principles
  • Testing anti-patterns: The Singleton
  • Testing anti-patterns: Create the World
  • Testing anti-patterns: Completely Mocked
  • Testing anti-patterns: The Exceptional Test
  • Testing anti-patterns: Usually Passes
  • Testing anti-patterns: One Big Test
  • Test anti-patterns: The Slow Test
  • Testing anti-patterns: Second class test
Applying TDD
  • Applying Test Driven Development
  • TDD Kata