最も簡単な方法は、依存関係のないクラス、つまり他のクラスで使用されているが別のクラスを使用していないクラスから始めることです。次に、「このクラス (このメソッド) が正しく実装されているかどうかをどうやって知ることができるでしょうか?」と自問して、テストを行う必要があります。
次に、オブジェクトが初期化されていないときにオブジェクトに問い合わせる最初のテストを作成し、NULL を返すか、例外をスローすることができます。次に、オブジェクトを初期化 (おそらく部分的にのみ) し、テスト テストを実行すると、価値のあるものが返されます。次に、別の初期化値でテストを追加できます-同じように動作するはずです。そのとき、私は通常、無効な値でオブジェクトを初期化しようとするなど、エラー状態をテストします。
メソッドの処理が完了すると、クラス全体の処理が完了するまで、同じクラスの別のメソッドに移動します。
次に、別のクラス (別の独立したクラス、または実装した最初のクラスを使用するクラス) を選択できます。
最初のクラスに依存するクラスを使用する場合、テスト環境 (または 2 番目のクラス) が完全にテストされているため、最初のクラスをインスタンス化しても問題ないと思います。クラスに関する 1 つのテストが失敗した場合、どのクラスに問題があるかを判断できるはずです。
最初のクラスで問題を発見したり、特定の条件下で正しく動作するかどうかを尋ねたりした場合は、新しいテストを作成してください。
記述しているテストが単体テストとして認定される多くのクラスにまたがっていると思われる依存関係を登る場合は、モック オブジェクトを使用して、システムの残りの部分からクラスを分離できます。
Jon LimJap からの回答のコメントで示したように、既にデザインを持っている場合、TDD は単体テストを使用してデザインを出現させることであるため、純粋な TDD を行っているわけではありません。
そうは言っても、すべてのショップが厳密なTDDを許可しているわけではなく、手元に設計があるので、それを使用してTDDを実行しましょう-テストファーストプログラミングと言ったほうがよいかもしれませんが、それはポイントではありません。 TDD始めました。