繁体   English   中英

如何编写测试用例readFile方法(返回类型为void)

[英]How to write test case readFile method which return type is void

我是编写测试用例的新手,请帮助我为以下方法编写测试用例。 提前致谢!!

public void readFile() throws IOException{
  linesProcessed = 0;
  FileInputStream fileInStream = new FileInputStream(filePath);
  DataInputStream dataInStream = new DataInputStream(fileInStream);
  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(dataInStream));
  String strLine;

  fileData.clear();
  while(StringUtils.isNotBlank((strLine = bufferedReader.readLine()))) {
    ++linesProcessed;
    processLine(strLine);
  }
  bufferedReader.close();
  dataInStream.close();
  fileInStream.close();         
}

这里有很多要说的。

首先,回答您的问题。 当某个方法不返回任何内容时,您仍然可以检查某个“其他状态”是否得到相应更新。

在您的情况下,一个有意义的观察点可能是该调用

processLine(strLine);

换句话说:您可以看到该方法在做什么,并以某种方式验证是否已调用另一个方法。

然后:您实际上编写了难以测试的代码。 其原因之一是因为此方法在字符串 (指向文件)上开始工作。 相反,您可以将阅读器对象传递给该方法。 这样就不需要使用PowerMock了。 您只需准备一个具有已知内容的阅读器对象,然后就可以验证所执行的操作与该准备好的内容相匹配!

除此之外,您还应该了解尝试资源的知识,还应该学习更多有关如何进行IO的知识。 关闭所有3个流没有意义。 当您在其他流上创建读取器并关闭外部读取器时,该“基本”流将自动关闭。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM