2017-02-15 7 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(..)に到着したら、私はこだわっています。パスのようにfilePathを渡すとすれば、これを主張する方法はわかりません。filePath = Paths.get( "dummy.txt"); NoSuchFileExceptionがスローされます。このメソッドをテストする上での助けになると大変感謝しています。

答えて

1

実際のファイル(mavenを使用している場合はsrc \ test \ resourcesフォルダなど)を指定するか、PowerMockを使用して静的メソッドをモックします。私はまずファイルをロードすることができます(例えば、クラスローダーを使ってテストクラスに相対的に)ファイルをロードし、これをテスト対象のメソッドへの入力として使用することが可能でなければなりません。

+0

ありがとう!私は最初のアプローチを試み、働いた! – Raskill

関連する問題