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

时间:2017-02-15 11:14:16

标签: java nio java-io

如何测试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。任何有关测试此方法的帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

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