When doing Test-Driven Development, should you start at the lowest possible level of abstraction, writing your classes bottom-up, to ensure that you can run unit tests in a timely manner? Or should you start somewhat above that level, coding several classes top-down, and afterward, using those classes, code bottom-up?
Should TDD be done top-down, bottom-up, or a combination of the two?
tdd