Я пытаюсь написать модульный тест для проверки фильтра в junit. У рассматриваемого фильтра есть метод init
, который принимает объект filterConfig
, использует его для получения WebApplicationContext
, а затем вызывает getBeanAs
в этом контексте, чтобы найти свойства, которые ему необходимо отфильтровать.
Мой модульный тест в настоящее время имеет webApplicationContext
автоматическое подключение с использованием @WebAppConfiguration
, которое я могу подключить к MockFilterConfig
и перейти к методу init
, пока что все хорошо.
Проблема в том, что в нашем реальном В приложении свойства, загруженные из WebApplicationContext
, в конечном итоге считываются из mon go с помощью свойстваConfigurer. Я явно не хочу загружать вещи из mon go для тестов, поэтому я удалил propertyConfigurer из applicationContext, который я использую при генерации webApplicationContext.
Я мог бы вручную добавить каждое свойство в applicationContext, за исключением того, что я хотел бы иметь возможность изменять свойства, для которых инициализирован фильтр, для различных тестов.
Так есть ли способ, которым я могу программно добавить эти bean-компоненты в webApplicationContext после его автоматического подключения, так что я могу изменить то, что фильтр инициализирует на основе теста, который я пишу?
Я не собираюсь генерировать WebApplicationContext
с помощью аннотации @webAppConfiguration
, но мне не удалось найти хороший способ создания другого макета, отличного от ручного, который казался слишком хрупким, так как мне пришлось бы делать так много предположений о внутренней работе webApplicaitoncontext.