RestAssured比较Double和Hamcrest

时间:2017-02-08 18:51:25

标签: testing compare double rest-assured hamcrest

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

我有一个测试:

@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之间的所有数字都应该是有效的。如果我完全错了,请澄清: - )

1 个答案:

答案 0 :(得分:4)

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

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