java - 予期された一致と実際の一致が行われましたが、テストが失敗しました

okwaves2024-01-25  11

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

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。