Подмена @ConfigurationProperties при тестировании Spring приложения
Я использую аннотацию @ConfigurationProperties для инициализации data классов свойствами из application.yml. Но, при тестировании, я не хочу братьи значения этих свойств из файлов типа *.yml или *.properties. Мне нужно, что бы в некоторых тестах соответствующие data классы заполнялись сгенерированными значениями, вместо значений из application.yml.
Я пытался объявлять для этого обычные бины, доступные только в тестах, но Spring ругается, когда не может исполнить заполнение свойств, которое предписывает @ConfigurationProperties.
Существует-ли способ как-то подавить или подменить действие данной аннотации для одного конкретного специфического теста?
ДОПОЛНЕНИЕ:
Для генерации экземпляров этих data классов с автоматическим заполнением их свойств значениями я успешно использую библиотеку mockito. Поэтому тут проблемы нету. Проблема именно в том, что бы заставить spring использовать эти замоканные экземпляры вместо тех, которые генерируются за счёт аннотации @ConfigurationProperties.
ДОПОЛНЕНИЕ:
Сейчас приведу пример, как могло бы выглядеть то, чего я хочу:
class MyPropertiesFactory: IPropertiesFactory {
override fun getValue(name: String): String = /*Тут код, создающий значения свойств по некоторым правилам, необходимым для теста. */
}
@TestPropertySource(propertiesFactory = MyPropertiesFactory::class)
Естественно, что интерфейс IPropertiesFactory - это гипотетический интерфейс, выдуманный мною для данного примера.