REST Webサービスがあります。これはJSONデータ表現で動作します。私は機能テストを提供したいと思います。私はRestAssured frameworkを使用する予定です。出力jsonの正確性をテストするための理解可能なメソッドを提供します。RestAssuredでのビジネスロジックの分離方法
例は、get("/method").then().assertThat().body("obj.field", equalTo(5));
しかし、一つの問題が発生する:JSON構造が変更される場合は、すべてのテストは、無効とします。たとえば、field
の名前をfield2
に変更する場合は、すべてのテストをfield
の出現で修正する必要があります。この問題は、Webページのテスト問題と非常によく似ています。ここでは、Web要素の存在を確認する必要があります。Page Objectパターンで導入されました。同様の解決策がREST APIのテスト用に存在するのでしょうか、それとも優雅なものにアドバイスできますか?
まだ十分に回答が得られていないと思われる場合は、詳細を編集して追加してください。 –
便利なリンクありがとうございます。私は次のことを行うべきであると思われます:1. Javaクラスを作成します。2. Webサービスから取得したjsonをこれらのクラスに非直列化します。3.これらのクラスの検証メソッドを書き込みます。jsonの変更の場合は、Javaクラスのフィールドの名前を変更し、それに応じて検証メソッドを修正する必要がありますが、テストは正しいままです。私が間違っている場合は私を修正してください – Anton
私はそれが必要なテストの深さ(と時間 - 時間)に依存すると思う。私は過去にあなたが記述したことをほぼ正確に行い、期待されたオブジェクト(または関連する部品)と実際に作られたオブジェクトを比較するためのフレームワークを書いています。 1.フレームワークの作成2.フレームワークとオブジェクトの管理(応答を最新の状態に保つ)。このような場合は、JSON Pathなどを使用してオブジェクトへのマッピングを最初に実行することなく、レスポンスの関連部分を簡単にテストできます。 –