rest-assured を使用して、次のように基本 REST サービスを呼び出します。
given().get(baseUrl + "/base/")
.then()
.statusCode(200)
.body("size()", is(2))
.body("meanPerDay", equalTo(1.5))
戻り値:
java.lang.AssertionError: 1 expectation failed.
JSON path meanPerDay doesn't match.
Expected: <1.5>
Actual: 1.5
baseUrl + "/base/" のペイロードは:
{
"meanPerDay": 1.5,
"stdPerDay": 0.5
}
.body("meanPerDay",equalTo(1.5)) を .body("meanPerDay",equalTo("1.5")) に置き換えると
失敗の原因は次のとおりです:
java.lang.AssertionError: 1 expectation failed.
JSON path meanPerDay doesn't match.
Expected: 1.5
Actual: 1.5
meanPerDay 属性に正しくアクセスできませんか?
テストでは、「期待される値は 1.5 ですか?」という属性値が見つかります。
2
期待値の型がサムではないと思います実際の値のタイプの e。
– ステファノ・クルシオ
2020 年 9 月 3 日 9:47
1
stackoverflow.com/questions/56114915/… をご覧ください。
– ステファノ・クルシオ
2020 年 9 月 3 日 9:53
@StefanoCurcio .body("meanPerDay", Matchers.equalTo(Double.valueOf(1.5))); を使用します。エラーが発生します: java.lang.AssertionError: 1 Expectatio失敗しました。 JSON パスの meansPerDay が一致しません。期待値: <1.5>実際: 1.5 、Peter Quan によって提供された回答は機能しているようですが、Matchers の使用がなぜ失敗を引き起こすのかわかりません。
– 青空
2020 年 9 月 3 日 10:02
------------------------
以下の数値は浮動小数点です
{
"meanPerDay": 1.5,
"stdPerDay": 0.5
}
ただし、次のテストは「double」と比較しています。
.body("meanPerDay", equalTo(1.5))
それでは、これを試してみてください:
.body("meanPerDay", equalTo(1.5f))
0