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