是否可以从assertJ usingFieldByFieldElementComparator中排除某些字段?

时间:2018-03-23 10:42:05

标签: java assertions assertj

如何实现以下目标:

List<Data> streams = new ArrayList<>();
assertThat(streams).usingFieldByFieldElementComparatorIgnoringGivenFields("createdOn").containsOnly(data1, data2);

1 个答案:

答案 0 :(得分:8)

使用与ListAssert.usingElementComparatorIgnoringFields(String... fields)完全相同的ListAssert.usingFieldByFieldElementComparator(),但允许忽略某些字段/属性:

  

通过字段/属性比较使用字段/属性   除了给定的字段/属性

所以你可以写:

List<Data> streams = new ArrayList<>();
//...
Assertions.assertThat(streams)
          .usingElementComparatorIgnoringFields("createdOn")
          .containsOnly(data1, data2);