1
我使用Jimfs在我的测试是这样的:每次测试后,我是否必须清理我的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的基本需求,但是......我正在修改现有的代码,我突然对此感到困惑。
感谢关闭()提示,它真的很好地知道,因为Junit保持默认的整个运行测试实例的强引用。关于Junit本身,每个测试方法都有一个实例存在疑问,因为它完全由所使用的Runner定义,即使每个测试都默认使用一个实例。 –
是的,所以你可能想用'@ Before'和'@ After'创建/关闭你的'FileSystem',这样你就可以正确地为JUnit做所有事情。在某些时候,我可以为Jimfs创建一个JUnit规则,为您做到这一点。 – ColinD