gpt4 book ai didi

java - Config.properties 仅在调用两次时返回值

转载 作者:行者123 更新时间:2023-11-28 21:10:30 26 4
gpt4 key购买 nike

我有一个正在为其运行测试的程序,并且我有一个尝试访问 config.properties 文件值的特定方法。第一次调用它返回 null,第二次调用后才返回一个值,我不明白为什么。

这是我调用 getHostProp() 方法两次的测试

@Test
public void testHost() throws Exception {

//when
notMocked.getHostProp();
assertEquals("tkthli.com", notMocked.getHostProp());
}

以及它正在测试的类中的方法

public class ConfigProperties {
Properties prop = new Properties();
String propFileName = "config.properties";

public String getHostProp() throws IOException {

String host = prop.getProperty("DAILY-DMS.instances");
if(foundFile()) {
return host;
}
return "Error";
}
}

这是我用来检查是否找到 config.properties 路径的辅助方法。我不确定它会如何影响这一点,但我添加它是为了防止有人看到我没有看到的东西,这可能会导致问题。

public boolean foundFile() throws IOException {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFileName);

if (inputStream != null) {
prop.load(inputStream);
inputStream.close();
return true;
} else {
throw new FileNotFoundException("property file '" + propFileName + "' not found in the classpath.");

}
}

最佳答案

你能试试这个吗...

if(foundFile()) {
return prop.getProperty("DAILY-DMS.instances");
}

prop 对象仅在 foundFile() 调用后填充,但是您正在读取前一行中的数据。

此外,除非您在运行时更新配置文件,否则我建议您先阅读属性文件并将其存储在某个静态对象或单例中。这样您就可以避免任何进一步的文件读取。只是一个想法..

关于java - Config.properties 仅在调用两次时返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30765466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com