2

クラスがあるとします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> dataData dataますが、とにかくコードが大幅に重複します。どうすれば回避できますか?

4

1 に答える 1