我正在构建一个 Java 程序,它将自动运行大约一百个测试。程序本身处于生产的最后阶段,我的老板希望我取出所有硬编码的变量并将它们存储在 .properties 文件中。现在我有两个 java 文件 Logic.java 和 Tests.java,以及一个属性文件 xxx.properties。但是,当我运行代码(Tests.java 中的 JUnit 测试)时,似乎永远不会加载属性。相关代码如下:
在 Logic.java 中
Properties properties = new Properties();
String val1;
String val2;
...
String last_val;
public void importProperties() {
try {
properties.load(new FileInputStream("xxx.properties"));
val1 = properties.getProperty("val1-property-name");
...
lastVal = properties.getProperty("lastVal-property-name");
} catch (Exception e) {
e.printStackTrace();
}
}
public void test() {
importProperties();
//Testing code follows, several method calls referencing val1, val2, etc
}
在 Tests.java 中
Logic logic = new Logic();
@Before
public void before() {
logic.importProperties();
}
@Test
public void test1() {
logic.testMethod();
}
//More tests
}
我应该在 @Before 方法中导入属性并设置 Logic.java 中的字符串 vals,因为我没有创建 Logic 的新实例(或者我相信),但是当我尝试查找字符串的值时(将字符串值写入日志文件),所述文件中没有文本。我知道日志文件写入有效,因此没有将字符串设置为其属性值。我的属性文件也正确写入,如有必要,我可以提供更多信息。谢谢!
编辑:因此,经过一系列故障排除后,看起来好像确实正在读取属性文件,因为 properties.keys() 调用返回了所有键。但是,它没有将字符串设置为键值。仍在进行故障排除,但任何想法都会有所帮助