February 2018
Intermediate to advanced
406 pages
9h 52m
English
Imagine two programmers working on the same task. Both are equally skilled, charming, and delightful people, motivated to do a high-quality job as quickly as possible. The task is not trivial, but not wildly complex either. For the sake of discussion, let’s say it’s a new user logging in to a website and entering some detailed pertinent information.
The first developer, who we’ll call Sam, says, “This is pretty easy, and I’ve done it before. I don’t need to write tests.” And in five minutes Sam has a working method ready to verify.
Our second developer is named Jamie. Jamie says, “I need to write some tests.” Jamie starts writing a test describing the desired behavior. The test is executable and passes if the corresponding ...