2017-02-15 47 views
0

我该如何测试java的NIO静态方法?如何测试java NIO静态方法?

我有一个方法

public Stream<String> getFileInformation(Provider provider) { 
     Path feedDirectoryPath; 
     DirectoryStream<Path> stream; 
     List<Path> files = new ArrayList<>(); 

     try { 

      feedDirectoryPath = getFeedDirectoryPath(); 

      if (!isFileExists(feedDirectoryPath)) { 
       return null; 
      } 

      stream = getDirectoryStream(feedDirectoryPath); 

      for(Path p : stream) { 
       files.add(p); 
      } 

      return Files.lines(Paths.get(files.stream().toString())); 

     } catch (Exception e) { 
      return null; 
     } 
    } 

我要测试这种方法,但是一旦我的测试到达Files.lines(..),我坚持。我不知道如何声明这一点,当然,如果我要传递一个文件路径,如Path filePath = Paths.get(“dummy.txt”); 将引发NoSuchFileException。任何帮助测试这种方法将不胜感激。

回答

1

您可以为其提供实际文件(例如,如果您使用的是maven,则在src \ test \ resources文件夹中),或者使用PowerMock模拟静态方法。我会推荐第一个,它应该可以加载一个文件(例如相对于使用classloader的测试类)并将其用作被测方法的输入。

+0

谢谢!我尝试了第一种方法并开始工作! – Raskill