首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JUnit测试中从SimpleFileVisitor强制失败

在JUnit测试中从SimpleFileVisitor强制失败
EN

Stack Overflow用户
提问于 2014-04-02 17:54:22
回答 1查看 218关注 0票数 0

我实现了一个名为InspectFiles的类,它扩展了SimpleFileVisitor,用于Files.walkFileTree

我使用InspectFiles检查一个目录及其子目录中文件的内容。当检测到任何特定字符之一时,我是否可以从InspectFiles测试失败?当InspectFiles.visitFile()不在测试类的范围内时,我会遇到很多麻烦。

代码语言:javascript
复制
@Test
public void invalidPunctuationTest() throws IOException {
    Path startingDir = dir.toPath();
    InspectFiles inspector = new InspectFiles();

    Files.walkFileTree(startingDir, inspector);
}

代码语言:javascript
复制
public class InspectFiles extends SimpleFileVisitor<Path> {
    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attr) throws IOException {

        try {
            File currentFile = new File(file.toString());
            InputStreamReader stream = new InputStreamReader(new FileInputStream(currentFile));
            for (int i = stream.read(); i != -1; i = stream.read()) {
                char c = (char) i;

                if (c == '’' || c == '–') {
                    throw new AssertionError();
                }
            }
        }
        catch (final IOException e) {
            e.printStackTrace();
        }
        catch (final AssertionError e) {
            System.err.println(e + " This file contains erroneous characters: " + file.toString());
            e.printStackTrace();
        }
        return FileVisitResult.CONTINUE;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-04-02 20:29:21

您可以使用库System Rules测试是否已将错误消息[此文件包含错误字符]写入System.err

代码语言:javascript
复制
@Rule
public final StandardErrorStreamLog log = new StandardErrorStreamLog();

@Test
public void invalidPunctuationTest() throws IOException {
  Path startingDir = dir.toPath();
  InspectFiles inspector = new InspectFiles();
  Files.walkFileTree(startingDir, inspector);
  assertFalse(log.getLog().contains("This file contains erroneous characters"));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22807733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档