3つのフィールドを持つJavaクラスがあります。要件の変更により、必要なのは2つだけであることに気付きました。
理想的には、コードを変更する前に、失敗するテストケースを作成します。
標準的な方法はありますか、それともこのタスクではTDDを無視する必要がありますか?
このフィールドを削除すると、クラスの動作が変わりますか?そうでない場合は、フィールドをドロップして、クラスがまだ正しく機能するかどうかを確認します(つまり、すでに作成したはずのテストに合格します)。
TDDの原則は、「テストによって設計された」コードを作成することです。これはばかげているように聞こえるかもしれませんが、最初に作成する必要があるクラスはテストクラスであり、テスト対象のクラスの動作をテストすることを意味します。いくつかの手順を繰り返す必要があります。
これはリファクタリングなので、失敗したテストから始める必要はありません。
必要なすべてのフィールドの完全なリストがある場合は、リフレクションによってそのフィールドのリストを比較できます。
yourClassName.getClass().getDeclaredFields() vs your list of fields
削除するフィールドを指定せずに、コンストラクターのテストを記述します。
明らかに、コンストラクターがフィールドの値をパラメーターとして受け取る場合にのみ機能します。
削除された機能をカバーするすべてのテストを削除します(これは、TDDの3つのルールに従って「本番コードの記述」としてカウントされません)。
残りのテストで廃止されたフィールドへのすべての参照を削除します。それらのいずれかが失敗した場合、それを成功させるために必要な本番コードを書くことができます。
テストが再び緑色になると、それ以降のすべての変更は「リファクタリング」カテゴリに分類されます。ここで(現在は使用されていない)フィールドを削除できます。