我有一个集成测试,它执行以下操作:
@ContextConfiguration( locations={..path to xmls..} )
class IntegTestBase{
--- some field initializations; ---
}
class MyIntegTest extends IntegTestBase{
@Test
public testingMethod(){
MyClass obj = new MyClass();
obj.methodToBeTested();
---- some assertions ----
}
}
class MyClass{
@Autowired
Something obj1;
public int methodToBeTested(){
--- Somecode ---
}
}
在上面的代码中,我认为,当测试用例运行时,将创建 MyClass 对象,并且所有字段都将被自动装配。但是发生的事情是,当测试运行时,所有自动装配的字段都为空。它没有抱怨找不到 bean 定义,所以我假设测试上下文在这里是可见的。但我不明白为什么它不接线。
另一方面,我可以在测试类中创建这些字段,自动装配它们并将其设置为创建的对象。有人能说出为什么这些字段为空吗?