集成测试:测试Autowired注释

时间:2013-03-25 22:55:22

标签: spring testing dependency-injection autowired

我想在春天测试注入依赖项。

我有一个班级:

 public SomeClass {
   @Autowired
   SomeBean bean ;
   public SomeBean getBean(){
     return this.bean ;
   }
 }

我想要这样的测试:

public SomeClassTest {
  SomeClass someClass ;
  @Before
  public void setUp(){
    someClass = new SomeClass() ;
  }                              
  @Test public testBeanWired(){
    assertNotNull(someClass.getBean()) ;                                                  
  }                          
}

我尝试使用带有测试配置文件的ContextConfiguration,但测试失败,我不想在测试中使用@Autowired,我想创建我的类的实例,并且bean会自动自动装配。 / p>

1 个答案:

答案 0 :(得分:3)

只有在使用@Configuration注释bean并且检测了字节码时,才可能执行此操作。否则,只有Spring创建的bean才会自动装配。不是使用new创建的bean。因为Spring无法知道你创建了一个对象,并且必须在其中注入一个依赖项。

这是依赖注入的基本原则:对象被实例化并由容器注入,而不是由你注入。