ここにいくつかの質問があります。論理的な順序でそれらに対処しようとするとうまくいきません
TDD は単体テストの形式ですか?
TDDを使用する唯一の利点ではないとしても、単体テストを作成するという意味で「はい」と言います。コメンテーターによって強調されたが、あなたの質問では言及されていないトピックについて: TDD は、テスト カバレッジとドキュメント化を保証するだけではありません (優れたテストは、低レベル コード ドキュメントの最良の形式の 1 つです)。TDD を使用すると、特定の設計上の決定を行う必要があり、通常はアプリ全体の設計が改善されます。
他のテストを作成しますか?
まあ、私は他の単体テストを書いていません。TDD のポイントは、テストの開発と並行してコードを開発することです。サイクルでソフトウェアを作成する - 単一のテスト、合格するのに十分なコードのみ、コードに必要なすべての機能と動作がテストで文書化されていることを確認し、コードがテスト可能であることを確認します (作成する必要があります)。そのようにTDDを行う)。追加の単体テストは必要ないはずです
使用する必要がある他の種類のテストがあります。統合テストが最初に思い浮かびますが、他にも受け入れテストなどがあります。それらが自動化されている場合は、より簡単になります。受け入れテストを書くのはあなたではなく、あなたの顧客/利害関係者であるべきです。Fitnesse http://fitnesse.org/に興味があるかもしれません。これは、非技術者が受け入れテストを作成するのに役立つツールです。
スタブについて?
具体的な例がなければ、これを議論するのは難しいです。今言えることは、一度に 1 つのテストずつコードを書くことだけです。そうすれば、複雑なクラスがあり、その複雑な依存関係をスタブ化する方法を考えるという状況に遭遇する可能性がなくなります。
ビルドにはどのようなテストを含める必要がありますか?
私は言います-可能であれば、それらすべて!