如何测试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 pathPath = Paths.get(“dummy.txt”)这样的文件路径; 将抛出NoSuchFileException。任何有关测试此方法的帮助都将不胜感激。
答案 0 :(得分:1)
您可以为其提供实际文件(例如,如果您正在使用maven,则在src \ test \ resources文件夹中),或使用PowerMock
模拟静态方法。我建议第一个,应该可以加载一个文件(例如使用类加载器相对于你的测试类)并使用它作为测试方法的输入。