有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有一种方法可以在没有特定顺序的情况下测试集合中的元素?

下面是我现在测试集合元素的方式:

.then()
    .spec(userSpec("users[0]", first))
    .spec(userSpec("users[1]", second))

这里的问题是,测试与特定的元素顺序有关

我正在寻找一种方法来测试集合中的元素,而不受它们的顺序限制,也找不到任何元素。我错过什么了吗


共 (1) 个答案

  1. # 1 楼答案

    您可能需要研究GPath(groovy表达式语言)。使用GPath可以识别特定的用户。例如,假设服务器返回的JSON文档如下所示:

    {  
       "users":[  
          {  
             "id":0,
             "name":"Jane"
          },
          {  
             "id":1,
             "name":"John"
          }
       ]
    }
    

    然后,您可以在中使用GPath来验证id为0的用户名为“Jane”,id为1的用户名为“John”:

    then().
           body("users.find { it.id == 0 }.name", equalTo("Jane")).
           body("users.find { it.id == 1 }.name", equalTo("John")). ..
    

    通过使用根路径,可以使其更加可重用:

    then().
           rootPath("users.find { it.id == %d }.name").
           body(withArgs(0), equalTo("Jane")).
           body(withArgs(1), equalTo("John")). ..