Немного фона:
Я Использую Spring 2.5 и конкретно Spring МОК и аннотации.
Я использую @Autowired
в моем коде (Автопроводное соединение сделано типом), и использование @Component
для представления классов к автоматическому проводному соединению.
Ситуация, описанная ниже, возникла, в то время как я пытался протестировать свой код.
Теперь к проблеме:
Примечание: Я использую другой Контекст Spring для Тестовой среды.
У меня есть класс FOO
который является @Autowired
но в тестовом контексте я хочу использовать другой класс того же типа MockFoo
(расширяется FOO
).
Установка Spring, конечно, перестала работать автоматически из-за нескольких опций для Внедрения зависимости FOO
класс (оба FOO
и MockFOO
соответствуйте проверке Типа).
Я ищу способ ввести тестовый боб вместо исходного боба.
Я ожидал, что Spring позволит использовать конфигурационный файл Контекста, чтобы переопределить бобовую инжекцию или приказать, чтобы Spring не автосоединил определенный боб проводом.
НО
Все эти опции кажутся, существует только для бобов, которые были первоначально определены в Конфигурационном файле Контекста Spring.
Используйте ReflectionTestUtils
, чтобы вручную установить Mock вместо автоматически подключенной зависимости (для этой цели ваш макет не должен управляться Spring, чтобы не было двусмысленности)