TDD is really great for well defined modules with clear inputs and outputs. For instance, if you are writing a
relativize function that converts a date object to a string of the form “2 weeks ago”, it’s pretty straightforward to outline all the various types of input you want to cover and just hit the “test” button each time you think you’ve made progress toward a solution. Your test framework allows you to run the
relativize function in isolation, without needing to provide input for your entire application just to test that one part.