java AssertJ:指定嵌套列表排序顺序

rlcwz9us  于 2023-11-15  发布在  Java
关注(0)|答案(1)|浏览(99)

我有一个actual对象,它是List<List<<ExampleDTO>>的示例。我想Assert嵌套列表是有序的。
为了提供一个例子,让我们假设列表包含:

List<List<ExampleDTO>> actual = List.of(
    List.of(
                   // id // name
        new ExampleDTO(1, "Example1"),
        new ExampleDTO(4, "Example4")
    ),
    List.of(
        new ExampleDTO(2, "Example2"),
        new ExampleDTO(6, "Example6")
    )
);

字符串
当嵌套列表按名称升序排序时,该示例应该通过。
我想创建一个Assert(使用AssertJ库),以确保NESTED列表按照名称升序排序。isSortedAccordingTo当前需要Comparator<List<ExampleDTO>>

xmq68pz9

xmq68pz91#

您可以使用allSatisfy
假设ExampleDTO定义为:

public class ExampleDTO {
  private final int id;
  private final String name;

  public ExampleDTO(int id, String name) {
    this.id = id;
    this.name = name;
  }

  public int getId() {
    return id;
  }

  public String getName() {
    return name;
  }

字符串
您的测试用例可能是:

@Test
void test() {
  List<List<ExampleDTO>> actual = List.of(
      List.of(
                     // id // name
          new ExampleDTO(1, "Example1"),
          new ExampleDTO(4, "Example4")
      ),
      List.of(
          new ExampleDTO(2, "Example2"),
          new ExampleDTO(6, "Example6")
      )
  );

  assertThat(actual).allSatisfy(
    list -> assertThat(list).isSortedAccordingTo(Comparator.comparing(ExampleDTO::getName))
  );
}

相关问题