当我执行测试用例时,我在读取.properties文件中的值时变为null。在调试测试用例时,我可以看到当测试类中有光标时从属性文件加载的值,但是当光标进入该类中的实际类时,我得到的值与null相同。我的代码如下
提前致谢
@RestController
@PropertySource("classpath:/com/example/prop.properties")
public class ReadProp {
@Value("${name}")
private String name;
@Value("${rollNo}")
private String rollNo;
@RequestMapping(value="/")
public void getDetails(){
System.out.println(name);
System.out.println(rollNo);
}
}
and the test case is as follows
@RunWith(SpringRunner.class)
@SpringBootTest
@PropertySource("classpath:/com/example/prop.properties")
public class ReadPropTest {
private ReadProp readProp = new ReadProp();
@Value("${name}")
private String name;
@Value("${rollNo}")
private String rollNo;
@Test
public void readValues() {
System.out.println(name);
System.out.println(rollNo);
readProp.getDetails();
}
}
答案 0 :(得分:0)
而不是使用new ReadProp()
创建新对象。你应该自动装配它。
@Autowired
ReadProp readProp;
在你的测试课上。如果使用new创建对象,则不会使用@Value
获取使用所有值分配的spring创建的bean。
答案 1 :(得分:0)
尝试这样的事情:
@PropertySource("classpath:prop.properties")// your error
public class ReadPropTest {
@Value("${name}")
private String name;
@Value("${rollNo}")
private String rollNo;
}