SpringRunner Integration Test Autowired is null



我有一个普通的Spring应用程序(不是Spring Boot(

当我使用Spock运行集成测试时,相关的dataUtilsAutowired为空

这些是我的课

RunWith(SpringRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = AppConfig.class)
class DataProcessorTest extends Specification  {
def 'call '() {
    given:
      DataProcesser dataProcessor = new DataProcesser()
    when:
      dataProcessor.importData()
    then:
      assert  2 == 2
  }
}

有人能告诉我可能出了什么问题吗??

使用newDataProcessor对象创建为普通对象,而不是作为bean。

@Autowired是一种将bin自动注入创建为bin的对象的方法。

如果使用@Autowired,并且DataProcessor中的dataUtils不为null,则必须为bean创建DataProcessor,如下所示。

@RunWith(SpringRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = AppConfig.class)
class DataProcessorTest extends Specification  {
@Autowired
DataProcessor dataProcessor;
def 'call '() {
when:
dataProcessor.importData()
then:
assert  2 == 2
}
}

这里有一个链接供您参考。

https://www.baeldung.com/spring-autowire

最新更新