オブジェクトの特定のフィールドの値を変更して処理するコードを書いてきました。それをテストするために、まず、オブジェクトのフィールドを再帰的にトラバースし、それらが正しく変更されていることを確認する JUnit テスト ケースを作成しました。CUT (テスト対象のクラス) は、オブジェクトのフィールドを再帰的にトラバースし、必要に応じて変更します。
そのため、フィールドを再帰的にトラバースするコードは、テスト ケースと CUT で同じままであり、現在重複しており、DRY に反しています。だから私は2つの質問があります:
1) プロジェクトでそのような状況に遭遇したことがありますか? はいの場合、DRY を適用しましたか、またはそのような重複をそのまま残しましたか?
2) この共通コードを util メソッドに入れると、それをテストするためのテスト ケースを作成する必要があります。これには、フィールドを再帰的に走査することが含まれます。では、重複を追加せずにこれを解決するにはどうすればよいでしょうか?