[英]How to unit test the class that reads Properties file
我正在嘗試為讀取屬性文件的類編寫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;
}
}
誰能給我關於我可以模擬和測試的測試用例場景的想法? 非常感謝您的幫助。
您的課程實際上做了兩件事:它加載一個屬性文件,並存儲一些特定的屬性。
出於測試目的,您可以(應該?)一次只專注於一個方面,方法是將這兩個角色拆分為不同的類(例如,PropertyLoader和PropertyStore),或者至少允許在類中進行一些注入。
如果要正確地測試類,從構造函數中刪除不必要的代碼總是一個好主意:)
例如:
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; }
}
由於您可以專注於屬性加載/還原的各個方面,因此該代碼將更易於測試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.