如何从测试用例中的属性文件中获取值

时间:2017-05-31 06:47:55

标签: spring-mvc spring-boot mockito junit4

当我执行测试用例时,我在读取.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();


    }

}

2 个答案:

答案 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;
}