我正在尝试递归地使用AssertJ中的isEqualToComparingFieldByField来比较来自Apache POI的HSSFWorkbook s
但是,当我尝试将其与HSSFWorkbook结合使用时,它不起作用:
HSSFWorkbook wb1 = new HSSFWorkbook();
HSSFWorkbook wb2 = new HSSFWorkbook();
assertThat(wb1).isEqualToComparingFieldByFieldRecursively(wb2);
我无法使用isEqualToComparingFieldByFieldRecursively方法:
由于HSSFWorkbook实现了Iterable assertThat(wb1),因此它返回的IterableAssert不像 ObjectAssert 那样递归地具有isEqualToComparingFieldByField。
如果我将HSSFWorkbook强制转换为Object,它将以正确的方式运行,但其他Apache POI类(HSSFSheet和HSSFRow)也会出现相同的问题。强制AssertJ只使用ObjectAssert的最干净方法是什么?
答案 0 :(得分:0)
您可以尝试usingRecursiveFieldByFieldElementComparator
,因为HSSFWorkbook
是Iterable
,所以应该可以使用。
如果它不起作用,是否可以在https://github.com/joel-costigliola/assertj-core/issues/1002上添加注释,以在即将到来的AssertJ递归比较api中获得对您的用例的支持。