如何覆盖Spring @Autowired的行为

Mar*_*ark 8 spring unit-testing dependency-injection

一点背景:

我正在使用Spring 2.5,特别是Spring IOC和注释.

@Autowired在我的代码中使用(自动装配是按类型完成的)并 @Component用于将类暴露给自动接线.

我试图测试我的代码时出现了下面描述的情况.

现在来问题:

注意:我为Test环境使用不同的Spring Context.

我有一个类FOO,@Autowired但在测试上下文中我想使用相同类型的不同类MockFoo(extends FOO).

当然,建立春季由于对的依赖注入多个选项自动故障FOO类(包括FOOMockFOO符合该类型检查).

我正在寻找一种方法来注入测试bean而不是原始的bean.

我希望Spring允许使用Context配置文件来覆盖bean注入或命令Spring不要自动装配特定的bean.

所有这些选项似乎只存在于最初在Spring Context Configuration文件中定义的bean.

Boz*_*zho 6

使用ReflectionTestUtils手动设置到位的自动装配Autowired依赖素(因此,您的模拟不能用弹簧管理,所以没有歧义存在)