gpt4 book ai didi

rest-assured - 为什么 Hamcrest 的 containsInAnyOrder 匹配器接受数组而不是列表?

转载 作者:行者123 更新时间:2023-12-04 04:20:49 25 4
gpt4 key购买 nike

在使用 Rest Assured 断言 REST 响应时,我正在使用 Hamcrest 的 containsInAnyOrder 匹配器。这是我的断言的一个例子:

assertThat(
body.jsonPath().getList("zones.name"),
containsInAnyOrder(values.getName().toArray()));

第一个参数返回一个列表。第二个参数 (values.getName()) 也返回一个列表。但是 Intellij IDEA 在 mactcher 上显示错误:Unchecked generics array creation for varargs parameter。当我运行这个断言时,我得到了 java.lang.AssertionError。当我将第二个参数转换为数组时,例如 values.getName().toArray(),我得到了预期的一切。

所以我无法理解为什么将 List 与 List 进行比较不起作用,但 List 与数组进行比较?为什么我需要将第二个参数转换为数组?

最佳答案

containsInAnyOrder接受 T...

当您传递 List 时,您并没有将 body.jsonPath().getList("zones.name") 中的元素与values.getName(),而是包含列表本身的单元素数组。由于字符串不能等于列表,因此断言失败。

关于rest-assured - 为什么 Hamcrest 的 containsInAnyOrder 匹配器接受数组而不是列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52165238/

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