Test Before > Test After

Rocky Warren
Rocky Warren
August 3, 20121 min read

By now, I hope we can all agree that unit tests are a good idea. I recently gave a presentation on why I think testing before writing production code (TDD) is better than testing after.

Code Quality

Only writing code to fix failing tests yields:

  • Better tests
  • Testable code
    • Decoupled
    • Fast
  • Less rework
  • High test coverage
    • Less debugger
  • Simple
    • Less gold-plating

Continuous Integration

Minimizing time in Red and committing on Green yields:

  • Compiling, tested code every ~10 minutes
  • Ability to revert to last Green quickly

Improved Interfaces

Intelligent test names and coding from client's perspective yields

  • Self-documenting code with clean, natural interfaces
// 👎
GetLog().Debug().Message("My message.");
Log(Priority.Debug, "My message.");
// 👍
void Debug_LogsDebugMessage() {
   Log.Debug("My message.");
   // Some assert
}

Testing after is work, TDD is fun!

Share or comment on Twitter