Тело API -
{"custId": "588",
"subId": "479",
"switches": [],
"services":[],
"nationwide": "null",
"subscriptionName": "",
"customerName": "",
"emailDomain": "",
"recipients": [],
"severity": "null",
"plannedOutages": "null",
"portalOnly": "null",
"ecpdId": ""
}
, а ответ -
[
{
"fieldName": "customerName",
"message": "\"customerName\" is not allowed to be empty"
},
{
"fieldName": "emailDomain",
"message": "\"emailDomain\" is not allowed to be empty"
},
{
"fieldName": "nationwide",
"message": "\"nationwide\" must be a boolean"
},
{
"fieldName": "portalOnly",
"message": "\"portalOnly\" must be a boolean"
},
{
"fieldName": "plannedOutages",
"message": "\"plannedOutages\" must be a boolean"
},
{
"fieldName": "severity",
"message": "\"severity\" must be a boolean"
},
{
"fieldName": "ecpdId",
"message": "\"ecpdId\" is not allowed to be empty"
},
{
"fieldName": "services",
"message": "\"services\" must contain at least 1 items"
},
{
"fieldName": "recipients",
"message": "\"recipients\" must contain at least 1 items"
}
]
Я попробовал следующие методы, чтобы получить сообщение в ответ
apiUser .should (ResponseConsequence.seeThatResponse ("Должен видеть ответ и данные как", response -> response.statusCode (400) .body ("message", hasItems ("\" subscriptionName \ "не разрешено быть пустым", " \ "customerName \" не может быть пустым "," \ "emailDomain \" не может быть пустым "," \ "nationalwide \" должно быть логическим "," \ "portalOnly \" должно быть логическим " , "\ "planOutages \" должен быть логическим "," \ "серьезность \" должен быть логическим "," \ "ecpdId \" не допускается быть пустым "," \ "services \" должен содержать хотя бы 1 items "," \ "переключатели \" должны содержать как минимум 1 элемент "," \ "получатели \" должны содержать как минимум 1 элемент "))));
, а другой используемый мной метод -
apiUser.should (ResponseConsequence.seeThatResponse ("Проверить пустые поля:", ответ -> response.statusCode (400) .body ("сообщение. [0]", hasItems (SubNa) me1_msg)). body ("message. [1]", hasItems (custName1_msg)) .body ("message. [2]", hasItems (emailDomain1_msg)). body ("message. [3]", hasItems (nationwide1_msg) ) .body ("message. [4]", hasItems (portalOnly1_msg)) .body ("message. [5]", hasItems (planOutages1_msg)). body ("сообщение. [6]", hasItems (severity1_msg)). body ("message. [7]", hasItems (ecpdId1_msg)) .body ("message. [8]", hasItems (services1_msg)). body ("message. [9]", hasItems (receients1_msg))));
и еще один метод, который я использовал:
. Объявляя все сообщения в строке, а затем вызывая его таким образом
apiUser.should. (ResponseConsequence.seeThatResponse («Проверить обязательные поля:», ответ -> response.statusCode (400) .body («сообщение», содержитString (SubName_msg)) .body («сообщение», содержитString (custName_msg)). Body ("message ", containsString (emailDomain_msg)).. body (" сообщение ", содержитString (nationwide_msg)) .body (" сообщение ", содержитString (portalOnly_msg)). body (" сообщение ", содержитString (planOutages_) msg)). body ("сообщение", содержит строку (severity_msg)) .body ("сообщение", содержит строку (ecpdId_msg)). тело ("сообщение", содержит строку (services_msg)). тело ("сообщение", содержит строку (receients_msg) )));
Но в каждом случае я получал один и тот же результат, показывая
ОШИБКА net .thucydides.core.steps.ConsoleLoggingListener - 1 ожидание не выполнено. JSON путь к сообщению не совпадает. Ожидается: (коллекция, содержащая «\» subscriptionName \ », не может быть пустой», а коллекция, содержащая «\» customerName \ », не может быть пустой», а коллекция, содержащая » \ "emailDomain \" не может быть пустым ", а коллекция, содержащая" \ "nationalwide \", должна быть логической ", а коллекция, содержащая" \ "portalOnly \", должна быть логической ", а коллекция, содержащая" \ "planOutages \ "должен быть логическим", а коллекция, содержащая "\" серьезность \ ", должна быть логической", а коллекция, содержащая "\" ecpdId \ ", не может быть пустой", а коллекция, содержащая "\" services \ ", должна против не менее 1 элемента ", а коллекция, содержащая" \ "переключатели \", должна содержать не менее 1 элемента ", а коллекция, содержащая" \ "получатели \", должна содержать не менее 1 элемента ") Фактически: [" subscriptionName "не допускается чтобы быть пустым, «customerName» не может быть пустым, «emailDomain» не может быть пустым, «общенациональный» должен быть логическим, «portalOnly» должен быть логическим, «planOutages »должен быть логическим,« серьезность » "должен быть логическим," ecpdId "не может быть пустым," services "должен содержать по крайней мере, 1 элемент, «получатели» должны содержать как минимум 1 элемент.