>>279
TDDはまず仕様のうちコーディングして実現できる宣言的命題をテストコードで表現する
コードを進めるとコードが失敗することによって、テストのバグも発覚して、仕様のミスや未定義な部分が明らかになる

テストコードを通るコードは、最低限の実装ではなく、コーディングする前に考えた宣言的命題を満たす実装

ちなみに、リファクタリングするなら、少なくともそのリファクタリングの前には、そのコードが通るテストがそろってる必要がある