我有一个普通的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
}
}
有人能告诉我可能出了什么问题吗??
使用new
将DataProcessor
对象创建为普通对象,而不是作为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