Mock MVC. Свойства#

Перечисленные ниже свойства дополняют стандартный набор

Настройка дефолтной сериализации / десериализации#

Подробнее:

Данное свойство упрощает получение данных десериализованного тела ответа на запрос.

import org.my.pack;

import com.fasterxml.jackson.core.type.TypeReference;
import ru.tinkoff.qa.neptune.core.api.data.format.DataTransformer;

//Описываем сериализацию и десериализацию для текущего проекта
public class MyDataTransformer implements DataTransformer {


    @Override
    public <T> T deserialize(String message, Class<T> cls) {
        //тут описываем механизм десериализации
    }

    @Override
    public <T> T deserialize(String string, TypeReference<T> type) {
        //тут описываем механизм десериализации
    }

    @Override
    public String serialize(Object obj) {
        //тут описываем механизм сериализации
    }
}
#Значение свойства указывается так
SPRING_MOCK_MVC_DEFAULT_RESPONSE_BODY_DATA_TRANSFORMER=org.my.pack.MyDataTransformer
import ru.tinkoff.qa.neptune.core.api.data.format.DataTransformer;

import static ru.tinkoff.qa.neptune.spring.mock.mvc.properties
        .SpringMockMvcDefaultResponseBodyTransformer
        .SPRING_MOCK_MVC_DEFAULT_RESPONSE_BODY_TRANSFORMER;

public class SomeClass {

    public void someVoid() {
        //пример доступа до значения свойства
        DataTransformer transformer = 
            SPRING_MOCK_MVC_DEFAULT_RESPONSE_BODY_TRANSFORMER.get();
    }
}

Как вариант можно, можно использовать бины Spring-приложения

import org.my.pack;

import com.fasterxml.jackson.core.type.TypeReference;
import ru.tinkoff.qa.neptune.core.api.data.format.DataTransformer;

import static ru.tinkoff.qa.neptune.spring.boot.starter.application
    .contexts.CurrentApplicationContextTestExecutionListener.getCurrentApplicationContext;

//Описываем сериализацию и десериализацию для текущего проекта
public class MyDataTransformer implements DataTransformer {


    @Override
    public <T> T deserialize(String message, Class<T> cls) {
        //текущий контекст приложения
        var context = getCurrentApplicationContext();

        //Далее извлекаем необходимые бины,
        //при помощи которых можно выполнить десериализацию
        return //возврат десериализации
    }

    @Override
    public <T> T deserialize(String string, TypeReference<T> type) {
        //текущий контекст приложения
        var context = getCurrentApplicationContext();

        //Далее извлекаем необходимые бины,
        //при помощи которых можно выполнить десериализацию
        return //возврат десериализации
    }

    @Override
    public String serialize(Object obj) {
        //текущий контекст приложения
        var context = getCurrentApplicationContext();

        //Далее извлекаем необходимые бины,
        //при помощи которых можно выполнить сериализацию
        return //возврат сериализации
    }
}

Полезная ссылка: Neptune Spring boot starter