Я использую, будьте уверены - https://code.google.com/p/rest -assured / wiki / Использование Мой JsonObject выглядит так

{
"id": "12",
"employeeInfo": null,
"employerInfo": null,
"checkDate": 1395093997218,
"netAmount": {
"amount": 70,
"currency": "USD"
},
"moneyDistributionLineItems": [
{
"mAmount": 100,
"employeeBankAccountId": "BankAccount 1"
}
],
}

Как я могу отправить это как часть параметров с помощью POST с подтверждением REST? я пытался

given().param("key1", "value1").param("key2", "value2").when().post("/somewhere").then().
        body(containsString("OK")); 

Но это не масштабируется для ОГРОМНЫХ объектов с вложенными значениями. Есть ли лучший подход?

8
user3431212 18 Мар 2014 в 06:27
Упомяните, что вы пробовали?
 – 
Tamil Selvan C
18 Мар 2014 в 06:28
Да, есть лучший подход, используйте Karate вместо REST-assured: github.com/intuit/karate
 – 
Peter Thomas
24 Дек 2017 в 08:09

2 ответа

Лучший ответ

Вы просто отправляете документ JSON в теле. Например, если у вас есть документ JSON в строке с именем myJson, вы можете сделать это так:

String myJson = ..
given().contentType(JSON).body(myJson).when().post("/somewhere"). .. 

Вы также можете использовать POJO, входной поток и byte [] вместо String.

9
Johan 18 Мар 2014 в 10:44
1
Так что нет способа передать вложенные значения в REST Assured? Я хочу выполнить параметризацию, и если мы используем статический файл JSON, то это сложно, или другим способом является создание файла JSON во время выполнения для этого конкретного запроса/API и его использование.. :(
 – 
Paresh
12 Апр 2015 в 03:27
О, я думаю, даже с помощью вышеупомянутого метода мы можем параметризовать образец!! Спасибо
 – 
Paresh
12 Апр 2015 в 04:22
Вы можете параметризовать его другими способами, например, с помощью механизма шаблонов, такого как jmte (code.google.com /p/jmte).
 – 
Johan
12 Апр 2015 в 07:23
    URL file = Resources.getResource("PublishFlag_False_Req.json");
    String myJson = Resources.toString(file, Charsets.UTF_8);

    Response responsedata = given().header("Authorization", AuthorizationValue)
        .header("X-App-Client-Id", XappClintIDvalue)
        .contentType("application/vnd.api+json")
        .body(myJson)
        .with()
        .when()
        .post(dataPostUrl);
2
mszymborski 12 Авг 2016 в 23:09