如何对读取给定文件的方法进行单元测试

我知道这有点天真。如何在不提供物理文件作为输入的情况下对这段代码进行单元测试。我是模仿和单元测试的新手。所以我不确定。请帮忙。

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

回到顶部