2017-02-15 86 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