2017-02-08 25 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) 
);