Подмена @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 - это гипотетический интерфейс, выдуманный мною для данного примера.


Ответы (0 шт):