首页 > 解决方案 > 如何比较\断言双值放心

问题描述

我正在尝试将 JSON 中的 \assert double 与 java 原始 double 值进行比较。正确的方法是什么?

我用简单而常规的方法来做,使用Matchers.equalTo方法,见下文

public class A{
       private static double someJavaDouble = 12
}
given().
        header(.....).
when().
        get(url).
then().
        statusCode(200)
        body("value", Matchers.equalTo(someJavaDouble))

的响应get(url)是 JSON:

{
    "success": true,
    "currentValue": 12.0
}

在上面的代码中,我收到此错误:

JSON path currentValue doesn't match.
Expected: <12.0>
  Actual: 12.0

ps如果有效

body("value", Matchers.equalTo(12f))

标签: javarest-assured

解决方案


RestAssuredFloat默认解析数字。

基于github issue 1315您可以将其配置为将其解析为 Double:

JsonConfig jsonConfig = JsonConfig.jsonConfig()
    .numberReturnType(JsonPathConfig.NumberReturnType.DOUBLE);

RestAssured.config = RestAssured.config()
    .jsonConfig(jsonConfig);

推荐阅读