Как подставлять значения в нужные поля средствами spring при написании тестов?

157
07 ноября 2019, 22:40

Требуется написать тесты с использованием restTemplate чтобы протестировать рест-сервисы на спринге.

Можно ли сделать так, чтобы написать общий метод для всех тестов, куда можно будет передавать только параметры, а сама отправляема сущность, например User будет прочитана из файла и, имя и фамилия, будут заполнены из переданных параметров.

К примеру xml-файл

<Users>
    <User>
        <name>${name}</name>
        <surname>${surname}</surname>
    </User>
</Users>

Сам метод будет читать этот файл и подставлять на нужные места значения переданных параметров:

private void sendUser(String name, String surname){
// чтение файла
// замена в прочитанной строки параметрами
// Отправка
}

Простейшим способом кажется конечно просто использование String.replaceAll, но есть ли в спринге или junit специальный инструмент?

Answer 1

Все же проще самостоятельно реализовать подстановку в файл. Заведите Map, где ключом будет имя stub-a, в файле добавьте эти stub-ы. Дальше итеративно заполните их в файле, можно через String.replace.

Answer 2

Можно решить при помощи Spring Intergation:1. С помощью file:inbound-channel-adapter получаем XML файлы из каталога

https://docs.spring.io/spring-integration/docs/2.0.0.M3/spring-integration-reference/html/files.html

2.При помощи int-xml:unmarshalling-transformer преобразуем XML в Java объекты

https://docs.spring.io/spring-integration/docs/2.0.0.RC1/reference/html/xml.html

3.Пишем свой ServiceActivator, который будет дёргать REST

https://docs.spring.io/spring-integration/docs/2.0.0.RC1/reference/html/service-activator.html

либо можно для вызова REST можно использовать int-http:outbound-gateway

https://docs.spring.io/spring-integration/archive/1.0.2.RELEASE/reference/html/ch21s03.html
READ ALSO
Как реализовать тайм-аут на кнопке?

Как реализовать тайм-аут на кнопке?

Я хочу поставить на кнопку что-то вроде таймера, то есть у меня есть кнопка, после нажатия она становится неактивной, скажем, на 2 часа, через...

158
Парсинг ассоциативных массивов json java

Парсинг ассоциативных массивов json java

Мне нужно спарсить данные в следующие классыЯ раньше не сталкивался с JSON

115
RecyclerView многосоставной

RecyclerView многосоставной

Нужно реализовать RecyclerView в котором должен быть заголовок и под ним список который зависит от данных БДПо началу сделал несколько RecyclerView...

111
Не могу сделать перенос строки в string

Не могу сделать перенос строки в string

Если срабатывает if, то идет обращение к базе данных и от туда выводим столбец "team_name", записывается он в строковую переменную "resultat" и выводится...

126