1

Rest Assured コードで以下の投稿リクエストがあります。

パラメータ化したい。提案してください。

       given().contentType(JSON).with()
          .body("\"id\":"123",\"email\":\"abv@gmail.com\"}").expect().body("status",            
        notNullValue()).when().post("https://localhost:8080/product/create.json");

パラメーター

ID、メール。

String 変数 id,email を宣言し、body() を渡そうとすると、機能しません。

動作しないコード:

 String id="123";
 String email=abc@gmail.com;

 given().contentType(JSON).with()
  .body("\"id\":id,\"email\":email}").expect().body("status",              
   notNullValue()).when().post("https://localhost:8080/product/create.json");
4

4 に答える 4

3

本文では、次のような正確な文字列を指定する必要があります。

"{\"id\":" + id + ",\"email\":" + email + "}"

これはうまくいくはずです。しかし、これは最善の方法ではありません。2 つのフィールド ( id と email ) を持つクラスを作成することを検討する必要があります。リクエストの本文として、オブジェクトの json シリアル化された本文を追加する必要があります。

LoginRequest loginRequest = new LoginRequest(id, email);
String loginAsString = Util.toJson(loginRequest);
given().contentType(JSON).with()
   .body(loginAsString)...

この方法を試してください。
それが役に立てば幸い。

于 2013-08-06T07:56:11.020 に答える
0

POJOを使用する以外に、 HashMapも使用できます。

given().
        contentType(JSON).
        body(new HashMap<String, Object>() {{
            put("name", "John Doe");
            put("address", new HashMap<String, Object>() {{
                put("street", "Some street");
                put("areaCode", 21223);
            }});
        }}).
when().
        post("https://localhost:8080/product/create.json")
then().
        body("status",  notNullValue());
于 2016-04-20T11:39:44.803 に答える