Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何编写返回类型为void的测试用例readFile方法_Java_Mockito_Junit4_Powermockito - Fatal编程技术网

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

Java 如何编写返回类型为void的测试用例readFile方法,java,mockito,junit4,powermockito,Java,Mockito,Junit4,Powermockito,我是写测试用例的新手,请帮我写以下方法的测试用例。提前谢谢 public void readFile() throws IOException{ linesProcessed = 0; FileInputStream fileInStream = new FileInputStream(filePath); DataInputStream dataInStream = new DataInputStream(fileInStream); BufferedReader buffer

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

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了。您只需准备一个具有已知内容的reader对象,然后就可以验证后续操作是否与准备的内容匹配


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

我给了您一些指导,但请理解您的请求太广泛了。你最好先自己尝试,然后展示你一直在使用的代码,而不是放弃一些代码,然后“现在有人告诉我如何测试它”。