gpt4 book ai didi

java - 在 AssertJ 中比较之前对数组进行排序

转载 作者:行者123 更新时间:2023-12-02 01:56:58 25 4
gpt4 key购买 nike

我使用assertJ 比较两个对象。我有从我们的应用程序输出的实际对象和预期对象。该对象具有作为其他对象的数组的字段,但该数组中的元素以随机顺序存在,因此有时测试通过,但也经常失败,因为比较了不正确的数组元素。

我正在做的事情是从两个对象中获取数组,对它们进行排序,然后设置为对象,但这看起来很难看,并且使用了 7 行代码。

Comparator.comparing(Value::getId)

Value[] actualOrderChildren = actualOrder.getChildren();
Arrays.sort(actualOrderChildren, comparing);
actualOrder.setChildren(actualOrderChildren);

Value[] expectedOrderChildren = expectedOrder.getChildren();
Arrays.sort(expectedOrderChildren, comparing);
expectedOrder.setChildren(expectedOrderChildren);

assertThat(actualOrder).isEqualToComparingFieldByFieldRecursively(expectedOrder);

有没有使用assertj流畅断言的更好看的解决方案?

最佳答案

containsExactlyInAnyOrder可能就是您正在寻找的。

assertThat(actualOrder.getChildren()).containsExactlyInAnyOrder(expectedOrder.getChildren());

关于java - 在 AssertJ 中比较之前对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57394659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com