Мне нужно проверить код приложения Spring, создав тест интеграции Cucumber. Я использую SpringApplicationBuilder запустить мое приложение, прежде чем фактическая логика срабатывает и я использую следующий синтаксис для этого: -Настройка свойств времени выполнения SpringApplicationBuilder()
application = new SpringApplicationBuilder()
.parent(new Object[]{"classpath:file1.xml", "classpath:file2.xml"})
.profiles("abc")
.properties("name:value") [It has 5/6 (name:value) pairs here]*
.showBanner(false)
.logStartupInfo(true)
.headless(true)
.application()
.run();
Моя весна приложение запускается правильно. Тем не менее, он не получает значения для пар свойств (имя, значение), которые я передаю SpringApplicationBuilder(). Я попытался следующий, чтобы установить их: -
- Используя пары значений имени, как описаны выше
- Использования HashMap (название, значение) пар
- Создание ConfigurableEnvironment, извлекая MutablePropertySources и устанавливающее свои свойства в Это.
Ни один из этих параметров не работает, поэтому, когда приложение запускается и код пытается получить доступ к некоторым значениям системного свойства, он прерывается.
Любые идеи, как это можно исправить .. Вся помощь очень ценится!
Или изменить тесты для использования среды Spring. – chrylis
Большое спасибо за ваш ответ. Я понимаю, что вы говорите. Тем не менее, мое приложение ожидает специальных свойств Spring, когда оно запускается с помощью SpringApplicationBuilder. Я пытаюсь моделировать все приложение Spring для моего теста интеграции с Cucumber, как если бы он запускался, когда он запускался за пределами тестовой среды. Следовательно, я, возможно, не смогу использовать свойства System для моего теста. Может ли быть какой-либо способ установить их как специальные свойства приложения Spring? – Hello
Правда, как я могу использовать свои тесты в среде Spring. – Hello