Step 2: fibonacci(1).

Another test, another naive implementation.
Step 3: fibonacci(2).

Another test - but this one passes without any other work!
Step 4: fibonacci(3).

Another test and another extension to our naive implementation.
Step 5: fibonacci(4).

Another test and another extension to our naive implementation.
Step 6: refactor, part 1.

No new tests. Now we can refactor a bit.
Step 7: refactor, part2.

No new tests. Use our knowledge of the Fibonacci sequence to refactor a bit
more.
Step 8: refactor, part 3.

No new tests. Tighten up the base cases and we're done.