TDD を使用して戦略パターンを実装しようとしています。各戦略項目はインターフェースを実装します。TDDでこれを行う最良の方法は何ですか?
同じメソッドをテストするインターフェイスの実装ごとに、実装ごとにテスト フィクスチャを作成する必要がありますか?
取るべきアプローチを詳述する記事は、感謝して歓迎されます:)
TDD を使用して戦略パターンを実装しようとしています。各戦略項目はインターフェースを実装します。TDDでこれを行う最良の方法は何ですか?
同じメソッドをテストするインターフェイスの実装ごとに、実装ごとにテスト フィクスチャを作成する必要がありますか?
取るべきアプローチを詳述する記事は、感謝して歓迎されます:)
戦略の実装ごとに個別のテスト クラスを作成すると思います。
これらすべてを継承する抽象クラスを作成できます。これは、すべての戦略のすべてのテストを確実に実装するのに役立ちますが、少なくとも各テスト クラスがコンパイルされる前に、スタブ メソッドを実装する必要があるというわずかな欠点があります。
ステップ 2 では、ストラテジー パターンを実装していないコードを記述します (重複したコードが存在する場合でも機能する最も単純なもの)。
次に、ステップ 3 で、各クラスを一度に 1 つずつ、戦略パターンに向けてリファクタリングします (そうすることが理にかなっている場合)。
本当に TDD を行っているのであれば、パターンから始めるのではなく、パターンにリファクタリングします。