我的spring-boot应用程序中有以下类
MockHttpServletRequestBuilder
这里,propertiesClass实际上包含从application.properties文件中读取属性值的方法。我想对getMeSomeValue方法进行单元测试。我的单元测试课程如下:
public class ClassA {
@Autowired
PropertiesClass propertiesClass;
public Integer getMeSomeValue(Integer someParameter) {
// uses some methods of propertiesClass
}
}
当我运行单元测试时,我在getMeSomeValue方法中调用propertiesClass的方法时得到空指针异常。在Spring-boot中有没有办法让@Autowired工作?
答案 0 :(得分:2)
而不是
ClassA classA = new ClassA();
这样做......
@Autowired
ClassA classA;
这样classA bean将在 Spring Container。
中可用答案 1 :(得分:1)
在ClassA上调用新的构造函数不会注入有线的PropertiesClass,因为它不是由Spring制作的。
取而代之的是
@Autowired
ClassA classA;
确保在MyApplication.class中调用bean,这将使它们在上下文中可用,因为您没有使用组件扫描。