Java 为什么“放心”会这样说;验证不需要';“t匹配”;但例外情况与实际情况相符吗?

Java 为什么“放心”会这样说;验证不需要';“t匹配”;但例外情况与实际情况相符吗?,java,rest-assured,Java,Rest Assured,我正在尝试通过重启来验证此JSON: { "valueBounds": [ { "bound": { "min": 1.0, "max": 4.2 }, "date": "2019-01-04T18:40:28.204+0100" } ], } 使用此代码: given().when().get(rootPath

我正在尝试通过重启来验证此JSON:

{
    "valueBounds": [
        {
            "bound": {
                "min": 1.0,
                "max": 4.2
            },
            "date": "2019-01-04T18:40:28.204+0100"
        }
    ],
}
使用此代码:

given().when().get(rootPath + "/test/").then().statusCode(200).log().body().
    body("valueBounds.bound.min", hasItems(1.0));
为什么我发现它们不匹配:

java.lang.AssertionError: 1 expectation failed.
JSON path valueBounds.bound.min doesn't match.
Expected: (a collection containing <1.0>)
Actual: [1.0]
java.lang.AssertionError:1预期失败。
JSON路径valueBounds.bound.min不匹配。
预期:(包含的集合)
实际:[1.0]

我曾尝试使用Arrays.asList(1.0),但这不是问题。

解决方案是在数字后面添加一个f:

"valueBounds.bound.min", hasItems(1.0f)

您正在使用Hamcrest matcher hasItems()。尝试使用equalTo()代替标题,标题非常明确地表示:预期为“集合”,但得到的是一个普通数字。