Как переопределить поведение Spring @Autowired

Немного фона:

Я Использую Spring 2.5 и конкретно Spring МОК и аннотации.

Я использую @Autowired в моем коде (Автопроводное соединение сделано типом), и использование @Component для представления классов к автоматическому проводному соединению.

Ситуация, описанная ниже, возникла, в то время как я пытался протестировать свой код.

Теперь к проблеме:

Примечание: Я использую другой Контекст Spring для Тестовой среды.

У меня есть класс FOO который является @Autowired но в тестовом контексте я хочу использовать другой класс того же типа MockFoo (расширяется FOO).

Установка Spring, конечно, перестала работать автоматически из-за нескольких опций для Внедрения зависимости FOO класс (оба FOO и MockFOO соответствуйте проверке Типа).

Я ищу способ ввести тестовый боб вместо исходного боба.

Я ожидал, что Spring позволит использовать конфигурационный файл Контекста, чтобы переопределить бобовую инжекцию или приказать, чтобы Spring не автосоединил определенный боб проводом.

НО

Все эти опции кажутся, существует только для бобов, которые были первоначально определены в Конфигурационном файле Контекста Spring.

8
задан entpnerd 31 March 2016 в 05:29
поделиться

1 ответ

Используйте ReflectionTestUtils , чтобы вручную установить Mock вместо автоматически подключенной зависимости (для этой цели ваш макет не должен управляться Spring, чтобы не было двусмысленности)

6
ответ дан 5 December 2019 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: