如何对读取给定文件的方法进行单元测试
我知道这有点天真。如何在不提供物理文件作为输入的情况下对这段代码进行单元测试。我是模仿和单元测试的新手。所以我不确定。请帮忙。
public static String fileToString(File file) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(file));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append("\n");
line = br.readLine();
}
return sb.toString();
} finally {
br.close();
}
}
回答:
您可能应该重构您的方法。如您所知,将文件作为输入的方法很难测试。另外,它似乎是静态的,这对可测试性没有帮助。如果您将方法重写为:
public String fileToString(BufferedReader input) throws IOException
测试起来会容易得多。您将业务逻辑与读取文件的技术分开。据我了解,您的业务逻辑正在读取数据流并确保行尾为unix样式。
如果这样做,您的方法将是可测试的。您还使它更通用:它现在可以从文件,URL或任何类型的流中读取。更好的代码,更容易测试…
以上是 如何对读取给定文件的方法进行单元测试 的全部内容, 来源链接: utcz.com/qa/401867.html