gpt4 book ai didi

java - 每次测试后是否必须清理 Jimfs 文件系统?

转载 作者:行者123 更新时间:2023-11-30 03:11:27 24 4
gpt4 key购买 nike

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

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 的基本需求,但是……我正在调整现有代码,突然对此感到困惑。

最佳答案

由于为每个测试方法创建了 FooTest 的新实例(不确定对于 JUnit 来说这是否总是,但我认为这至少在典型的测试方法中是正确的)情况),除非您将该字段设置为静态,否则您还将为每个测试获得一个新的FileSystem。因此,无需删除测试后创建的文件。不过,您可能想要做的是在每次测试后close() FileSystem。这会立即将其从打开的文件系统映射中删除,从而允许对其进行垃圾收集。 (这并不是绝对必要的,因为文件系统存储在弱引用中,但我认为无论如何这是更好的选择。)

关于java - 每次测试后是否必须清理 Jimfs 文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com