そうでないと言う人もいますが、TDDと単体テストを分離することをお勧めします。TDDは非常に精神的な変化であり、ユニットテストには最初は時間がかかるようです。それらを1つのアイテムと見なすと、すぐに十分な利益が得られないリスクがあり、TDDと単体テストを単純に削除したくなる誘惑があります。
最初のことは、いくつかの単体テストを書くことです。最初は完璧である必要はありません。コードの小さな単位をテストする方法と、コンポーネントを分離するためにモックを使用する方法を自分で学んでください。
これは最大の時間を要しますが、最大の見返りがあります。テストするページにアクセスするために14のWebページをページ移動する必要がなくなったことに気づいたら、私が何を話しているのかがわかります。
私にとって、大きなユーレカの瞬間はWindowsアプリで、正規表現をテストしようとしていたため、2つのフォームに入力する必要がありました。NUnitをインストールし、そのメソッドに関するテストを作成して、テスト時間をどれだけ短縮できるかを確認しました。次に、エッジケースに対処するためのテストを追加しました。等々。
次に、ユニットテストを適切に作成する方法を学びます。書くのが速い脆性テストと多くの個々のテストを書くことのバランスを学びましょう。これはかなり簡単です。理想的には、各テストは1つのことだけをテストしますが、どれくらい時間がかかるかをすぐに理解できるので、コードの変更ごとに中断するテストを作成するまでルールを少し曲げてから、適切なバランスに戻ります。 (後者より前者に近い)。
TDDは、私が言ったように、仕事のやり方の大きな精神的な変化です。ただし、とにかくテストをすでに作成していれば、開発プロセスにそれほど時間はかかりません。そして、あなたはまさにあなたの目の前であなたのコーディングスタイルが改善するのを見るでしょう。むしろ、もしあなたがそれを落とさないなら、それはあなたのためではありません。
最後に留意すべきことは、TDDは単体テストに限定されないということです。受入テスト駆動設計は、TDDの一部です。あなたの心の中でそれらを混同しない別の正当な理由。