2017-02-08 46 views
1

比较双人我有一个愚蠢的事情,但我真的不容看到我缺少什么:RestAssured与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(双,双)。根据我的理解,0.069到0.089之间的所有数字都应该是有效的。如果我完全错了,请澄清:-)

回答

2

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) 
);