Java JUNIT如何检查检索到的自定义对象在assertthat中排序

Java JUNIT如何检查检索到的自定义对象在assertthat中排序,java,junit,Java,Junit,您好,我正在使用Hibernate按FindByOrderByValueAsc的排序顺序检索元素 如何检查它在Junit中的排序?假设您在列表中有检索到的元素 编写一个方法,该方法将使用比较器迭代列表,以比较连续的元素,如果一对元素的顺序不正确,则返回false 编写断言,使用适当的比较器对检索到的元素调用方法。如果调用返回false则断言失败,假定您在列表中有检索到的元素 编写一个方法,该方法将使用比较器迭代列表,以比较连续的元素,如果一对元素的顺序不正确,则返回false 编写断言,使用适当

您好,我正在使用Hibernate按FindByOrderByValueAsc的排序顺序检索元素


如何检查它在Junit中的排序?

假设您在
列表中有检索到的元素

编写一个方法,该方法将使用
比较器迭代
列表
,以比较连续的元素,如果一对元素的顺序不正确,则返回false


编写断言,使用适当的
比较器
对检索到的元素调用方法。如果调用返回
false

则断言失败,假定您在
列表中有检索到的元素

编写一个方法,该方法将使用
比较器迭代
列表
,以比较连续的元素,如果一对元素的顺序不正确,则返回false


编写断言,使用适当的
比较器
对检索到的元素调用方法。如果调用返回
false
则断言失败,请为感兴趣的字段创建
比较器

Comparator<YourObject> cmp = 
Comparator.comparing(YourObject::getOrder)
          .thenComparing(YourObject::getValue);

for(int i = 0; i < yourResult.size() - 1; ++i) {
    YourObject left = yourResult.get(i);
    YourObject right = yourResult.get(i + 1);
    if(cmp.compare(left, right) > 0) {
        Assert.fail("not sorted")
    }
}
比较器cmp= Comparator.comparing(YourObject::getOrder) .然后比较(您的对象::getValue); 对于(int i=0;i0){ Assert.fail(“未排序”) } }

显然,您没有编译过这些代码。

为您感兴趣的字段创建一个
比较器

Comparator<YourObject> cmp = 
Comparator.comparing(YourObject::getOrder)
          .thenComparing(YourObject::getValue);

for(int i = 0; i < yourResult.size() - 1; ++i) {
    YourObject left = yourResult.get(i);
    YourObject right = yourResult.get(i + 1);
    if(cmp.compare(left, right) > 0) {
        Assert.fail("not sorted")
    }
}
比较器cmp= Comparator.comparing(YourObject::getOrder) .然后比较(您的对象::getValue); 对于(int i=0;i0){ Assert.fail(“未排序”) } }

显然,我没有编译过这些代码。

有一些断言库可以与JUnit一起使用,它们的断言比JUnit本身更复杂。有了它,你就可以写作了

assertThat(theList).containsExactly(firstValue, secondValue)

有一些断言库可以与JUnit一起使用,它们的断言比JUnit本身更复杂。有了它,你就可以写作了

assertThat(theList).containsExactly(firstValue, secondValue)

很好。。只是它按降序检查。更改为大于symbol。@sathishkumar在这种情况下,您可以接受答案。如何在Mockito中执行相同操作?@sathishkumar提出一个清晰的单独问题。效果很好。。只是它按降序检查。更改为大于symbol。@sathishkumar在这种情况下,您可以接受答案。如何在Mockito中执行相同操作?@sathishkumar提出一个明确的单独问题。