【发布时间】:2018-04-16 12:11:31
【问题描述】:
我有以下代码:
Map<String, String> fileContentsByName = new HashMap<String, String>();
try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(directory))
{
for (Path path : directoryStream)
{
if (Files.isRegularFile(path))
{
fileContentsByName.put(path.getFileName().toString(), new String(Files.readAllBytes(path)));
}
}
}
catch (IOException e)
{
}
我正在尝试测试此方法。我正在使用Powermock 来获得嘲笑的DirectoryStream<Path>。但是,当测试在代码中遇到 for-each 时,它会因 NPE 而崩溃。如何指定 DirectoryStream 中的路径?
我考虑过更改源代码以使用迭代器并模拟 DirectoryStream 的迭代器以提供所需的路径,但我想知道是否有更好的选择?
【问题讨论】:
标签: java unit-testing junit mocking powermock