RestAssured与Hamcrest比较双(RestAssured comparing Doub

2019-09-30 13:20发布

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

我有一个测试:

@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

它接缝我不`吨了解Batman蝙蝠侠(双,双)。 从我的理解0.069 0.089和之间的所有数字应该是有效的。 如果我完全错了,请澄清:-)

Answer 1:

Actual: 0.07960199004975124 -这是一个字符串值,这就是为什么你的匹配器不工作。 你需要提取价值,转换为双和独立mathcer比较。

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


文章来源: RestAssured comparing Double with Hamcrest