クラスがあるとしますFormater
class Formatter {
public FormattedData format(Map<String, Data> data) {
return .....
}
}
Collectorおよび書式設定されたデータを使用しFormatterて返すことができる別のクラス
class Collector {
Formatter formatter;
Map<Id, Data> map = new HashMap<>()
class Collector (Formatter formatter) {
this.formatter = formatter;
}
public void addData(Data data) (
map.put(data.getId(), data);
}
public FormattedData getFormattedData() {
return formatter.format(map)
}
問題は、テストを書きたいということです。クラスのすべてのテストを作成しましFormatterたが、どのようにテストすればよいCollectorですか?
コレクターの実装に依存するべきではないため、 のすべてのテストをコピーしFormatterて、 の入力として渡す必要がありますCollector。確かにテストでは、入力データ型として変更Map<String, Data> dataしData dataますが、とにかくコードが大幅に重複します。どうすれば回避できますか?