У меня есть сценарий, в котором мне нужно выполнить сценарий отрицательного теста.
Это вызов PUT для обновления объекта клиента.
Мне нужно преобразовать объект в JSON и удалить егообязательный атрибут перед применением к полезной нагрузке.
Теперь, когда я предоставлю полезную нагрузку с отсутствующим атрибутом, я ожидаю ответа 400 и сообщения об ошибке.
Я использовал следующий код, ноInvalidDefinitionException
Ошибка
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
Код:
UpdateCustomerModel updateCustomerModel = new UpdateCustomerModel()
updateCustomerModel.setFirstName("abc");
updateCustomerModel.setLastName("abc");
updateCustomerModel.setEmail("a@a.com");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(updateCustomerModel);
JSONObject updateCustomerJson = new JSONObject(json);
updateCustomerJson.getJSONObject("customer").remove("email");
Response response =
given().filter(new RequestLoggingFilter(this.requestCapture))
.header("Authorization", getSession().getToken()).body(updateCustomerJson)
.body(updateCustomerJson)
.when()
.put(Resource.updateCustomer)
.then()
.extract().response();
ЗАГРУЗИТЬ: Обязательные атрибутыв полезной нагрузке:
firstname, lastname and email
{
"customer": {
"id": null,
"firstname": "Chuck",
"lastname": "Patterson",
"store_id": null,
"website_id": 1,
"addresses": [
],
"default_billing": null,
"default_shipping": null
}
}
Пробовал R & D много конфигов, но без радости
например
mapper.disable (SerializationFeature.FAIL_ON_EMPTY_BEANS);
Может кто-топожалуйста, укажите любое направление?