NICOLÁS BOTTARINI
Back to the path

The path

Testing

961 pages of reading · 14 h 57 min of video

For me TDD is the foundation of everything else. Tests are not a step you do at the end: they drive the design and give you the safety net to change the code without fear. Here's the whole path, from the basic TDD cycle to test doubles, Outside-In and how to add tests to legacy code.

Topics

Stage 1 · TDD and objects
  • TDD Basics

    TDD Cycle, Laws of TDD, Benefits of TDD, Fake It Till You Make It, Obvious Implementation, Triangulation, TODO List, ZOMBIES

  • TDD as if you meant it

  • ZOMBIES

    Zero, One, Many, Boundary Behaviors, Interface Definition, Exercise Exceptional Behavior, Simple Scenarios, Simple Solutions

  • Test Structure

    Arrange Act Assert, Given When Then

  • FIRST Principles

  • Parametrized Tests

  • Nested Tests

  • Transformation Priority Premise

  • Single Assert Rule

Stage 2 · Design principles
  • Test Data Builders

  • Object Mother

  • Test Fixtures

  • Test DSL

Stage 4 · Outside-In and legacy code
  • Test Doubles

    Mocks, Spies, Stubs, Dummy, Fake Objects

  • Mockist TDD

    Outside-In, ATDD, London vs Chicago

  • Classical Outside-In

    Ian Cooper Style TDD

  • Integration Tests

  • End-to-End Tests

    Cypress, Selenium

  • Humble Object

    Presenters

  • Walking Skeleton

  • Test Pyramid

  • Types of Tests

  • Legacy Code

    Approval Testing, Golden Master, Seams, Strangler

Stage 8 · Architecture at scale
  • Performance & Load Testing

Resources

Katas to practice

Bowling

Bowling

Calculate bowling score

NoviceShort
View kata
Fibonacci

Fibonacci

Implement the famous Fibonacci sequence using TDD

NoviceShort
View kata
Fizz-Buzz

Fizz-Buzz

A simple game to start your TDD journey.

NoviceShort
View kata
Leap Year

Leap Year

Calculate whether a year is a leap year

NoviceShort
View kata