The moral of this tale is simple: in test-driven design, you have to fail before you can succeed.
The idea behind test-driven design (TDD) is to incorporate testing into the process of constructing your system, rather than waiting for developers to check in their code and to build a system that someone else tests. TDD has some advantages worth considering...