Я использую 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, но хорошо ... Я адаптирую существующий код, и я внезапно запутался в этом.
Спасибо за подсказку 'close()', на самом деле приятно знать, что, поскольку Junit держится по умолчанию сильные ссылки тестовых экземпляров для всего прогона. Что касается самого Junit, вы можете сомневаться в одном экземпляре для каждого тестового метода, так как он полностью определен используемым «Runner», хотя по умолчанию используется один экземпляр для каждого теста. –
Да, поэтому вы, вероятно, захотите использовать '@ Before' и' @ After' для создания/закрытия вашей 'FileSystem', чтобы вы делали все правильно для JUnit. В какой-то момент я могу создать JUnit Rule для Jimfs, который сделает это за вас. – ColinD