【问题标题】:RestAssured comparing Double with HamcrestRestAssured 比较 Double 和 Hamcrest
【发布时间】:2017-02-08 18:51:24
【问题描述】:

我有一个愚蠢的事情,但我真的看不出我错过了什么:

我有一个测试:

@Test
public void testeBerechneRendite() {
    get("/rendite?jahresnettomiete=8000&kaufpreis=100000&nebenkosten=500")
    .then().body(is(closeTo(0.079, 0.01)));
}

错误是:

Response body doesn't match expectation.
Expected: is a numeric value within <0.01> of <0.079>
Actual: 0.07960199004975124

它接缝我不明白 closeTo(double, double)。据我了解,0.069 和 0.089 之间的所有数字都应该是有效的。如果我完全错了,请澄清:-)

【问题讨论】:

    标签: testing compare double rest-assured hamcrest


    【解决方案1】:

    Actual: 0.07960199004975124 - 它是一个字符串值,这就是你的匹配器不起作用的原因。您需要提取值,转换为双精度并在单独的数学器中进行比较。

    MatcherAssert.assertThat(
        Double.parseDouble(get("/rendite?jahresnettomiete=8000&kaufpreis=100000&nebenkosten=500")
        .then().extract().jsonPath().getString("args.val")),
        closeTo(0.079, 0.01)
    );
    

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多