json形式でデータを返すが、Content-Type
〜ではなくtext/html
のデータを返すレストAPIが開発されたとしましょう。java REST Content-Type:text/htmlとhtmlタグが挿入された保証レスポンスボディ
は今、私はRESTアシュアードに筆記試験があります。
given()
.param("username", username)
.param("password", password)
.when()
.get("/authenticate")
.then()
.statusCode(200)
.body("user.id" , hasItem(20));
を、それは動作しません。私は、レスポンスボディをログアウトして、それは私が得るものです:
<html>
<body>{"key":"752E7A74E8F3999BE9EFE3EA0E0DF320","user":{"id":20,"firstName":"K1","lastName":"K1","role":"ROLE_CUSTOMER","phoneNumber":"888888888"},"expirationDate":"2016-08-10T13:52:50+02:00"}</body>
</html>
とエラー:bodyタグの間
FAILED: test_login_as_valid_customer("888888888", "3432")
java.lang.AssertionError: 1 expectation failed.
JSON path key doesn't match.
Expected: 20
Actual:
が私の予想されるJSONがあるが、htmlタグはどこから来たのか? PostmanやPawやWebブラウザでapiメソッドをテストすると(url paramsで簡単にGETされているので)、私は応答しません。
「JSONパスキーが一致しません」というエラーが表示されることがあります。それらのタグのために。
私は受諾ヘッダーを指定しません。私はRESTAssuredテストで試したときにaccept(ContentType.JSON)を返しましたが、text/htmlを返しました。 –
私はContent-Type:application/jsonを返すapiで同様のテストを実行しようとしました。 jsonのターゲット変数が検出され、アサーションのために適切に抽出されました。 –