Java Spring-如何通过@WithUserDetails使用application.properties中的值

时间:2019-02-06 17:45:13

标签: java spring spring-boot junit junit4

我想将application.properties中带有@WithUserDetails()注释的值用于测试。

我当前的代码:

@Value("${user.admin}")
private String ADMIN;

@Test
@WithUserDetails(ADMIN)
public void foo() { 
}

显示错误“属性值必须为常数”

我正在将junit4和springRunner一起使用

2 个答案:

答案 0 :(得分:1)

似乎无法做到这一点,Java编译器不允许这样做,因为它在编译时不认为@Value()中的值是常量。

答案 1 :(得分:0)

java内置了读取.properties文件的功能,而JUnit内置了在执行测试套件之前运行安装代码的功能。

java读取属性:

Properties p = new Properties();
p.load(new FileReader(new File("application.properties")));

junit startup documentation

将这2个放在一起,您应该拥有所需的东西。

但是,是的,最低要求是您的application.properties包中还包含test->resources个文件。