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

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); 

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

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

除此之外,你应该了解 try-with-resources,还应该更多地学习如何进行 IO。关闭所有 3 个流是没有意义的。当您在其他流上创建读取器并关闭外部读取器时,该“基本”流会自动关闭。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!