首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次测试后,我必须清理Jimfs FileSystem吗?

每次测试后,我必须清理Jimfs FileSystem吗?
EN

Stack Overflow用户
提问于 2015-11-06 09:49:10
回答 1查看 1.5K关注 0票数 1

我在测试中使用Jimfs,如下所示:

代码语言:javascript
复制
public class FooTest {
  private FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
  private List<Path> paths = new ArrayList<>();
  private Path getPath(String first, String... more) {
    Path path = fs.getPath(first, more);
    paths.add(path);
    return path;
  }
  @After public void cleanPaths() {
    for (Path path: paths) {
      Files.walkFileTree(path, FileVisitors.DELETE);
    }
  }
  @Test public void bar() {
    Path baz = getPath("baz");
    // test using baz
  }
}

现在,我们知道Jimfs在记忆中。我真的需要清理我创建的路径吗?还是只删除@After方法(及其关联机制)?

我显然认为这是创建jimfs的基本需要,但是.我正在调整现有的代码,我突然对此感到困惑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-07 02:25:50

由于为每个测试方法创建了一个新的FooTest实例(不确定JUnit中是否总是这样,但我认为至少在典型的情况下是正确的),除非您创建了static字段,否则每个测试都会得到一个新的FileSystem。因此,没有必要删除测试后创建的文件。不过,您可能要做的是,在每次测试之后对close()进行FileSystem。这会立即将其从打开的文件系统映射中移除,从而允许垃圾收集。(这并不是绝对必要的,因为文件系统存储在那里的弱引用中,但我认为它还是比较好的。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33563860

复制
相关文章

相似问题

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