gpt4 book ai didi

java - 如何对读取属性文件的类进行单元测试

转载 作者:行者123 更新时间:2023-11-30 08:38:46 27 4
gpt4 key购买 nike

我正在尝试为读取属性文件的类编写 Junit 测试用例这是我的代码:

public class PropertiesRetreiver {

private String foo = "";
private String foo1 = "";
private static String PROPERTIES_PATH ="data.properties";

public PropertiesRetreiver() throws IOException {

InputStream in = this.getClass().getResourceAsStream(PROPERTIES_PATH);
Properties properties = new Properties();
properties.load(in);

foo = properties.getProperty("foo");
foo1 = properties.getProperty("foo1");
}

public String getfoo() {
return foo;
}

public String getfoo1() {
return foo1;
}
}

任何人都可以告诉我可以模拟和测试的测试用例场景吗?非常感谢您的帮助。

最佳答案

你的类实际上做了两件事:它加载一个属性文件,并存储一些特定的属性。

出于测试目的,您可以(应该?)一次只专注于一个方面,通过将这两个角色拆分到不同的类(例如 PropertiesLoader 和 PropertyStore)或至少允许在您的类中进行一些注入(inject)。

如果你想正确地测试你的类,从构造函数中删除不必要的代码总是一个好主意:)

例如:

public class PropertiesRetreiver {

private String foo = "";
private String foo1 = "";
private static String PROPERTIES_PATH ="data.properties";

public PropertiesRetreiver() {
}

public void loadProperties() throws IOException {
loadProperties(PROPERTIES_PATH);
}
public void loadProperties(String path) throws IOException {
InputStream in = this.getClass().getResourceAsStream(path);
Properties properties = new Properties();
properties.load(in);
loadProperties(properties);
}
public void loadProperties(Properties properties) {
foo = properties.getProperty("foo");
foo1 = properties.getProperty("foo1");
}

public String getfoo() { return foo; }
public String getfoo1() { return foo1; }
}

这段代码将更容易测试,因为您可以专注于属性加载/检索的各个方面

关于java - 如何对读取属性文件的类进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36415599/

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