Добрый вечер, коллеги!
В автотесте апи-приложения есть ресурс, который в теле запроса принимает json-структуру.
Автотесты пишутся с помощью библиотеки rest assured. Т.к. методы фрейма позволяют работать с запросом как с объектом - для передачи этой json-структуры был сформирован pojo объект.
Он включает примитивные типы данных(например, id) и объекты.
Итого, при передаче в теле запроса моего pojo - все неустановленные мной значения для примитивных типов данных по дефолту устанавливаются как 0 (если говорить про целый тип), что в принципе логично, исходя из языка.
Но не все параметры обязательны в методе и соответственно не всегда нужно передавать значения для них.
Как можно избежать передачи установленных по-умолчанию значений для примитивных типов.
Пример:
@Test
public void testForAtInfo() {
RequestSpecification request = RestAssured.given();
WeatherRequest body = new WeatherRequest();
request.contentType(ContentType.JSON);
body.setBase("Test");
body.setId(321);
request.body(body, ObjectMapperType.GSON)
.post("http://host:port/weather").then().assertThat().statusCode(201)
.log().all();
}
Лог:
{
“visibility”: 0,
“cod”: 0,
“id”: 321,
“base”: “Test”
}
В логе видно, что кроме установленных мной id и base передаются присутствующие в структуре “visibility”: 0,
"cod": 0,