Я использую стороннюю библиотеку, которая в основном создает выходной каталог с различными типами файлов и подкаталогов внутри. Я хотел бы иметь возможность писать модульные тесты, чтобы подтвердить правильность вывода.
Я хотел бы иметь возможность использовать библиотеку с RAM-диском, чтобы никакая библиотека не касалась реальных дисковых пластин. Идея состоит в том, чтобы сделать тесты очень быстрыми для запуска и очистки (удалить RAM-диск?).
Мне доступны два наиболее важных варианта: Commons VFS и JSR 203. Первое для меня бесполезно, потому что я хочу, чтобы все работало прозрачно, используя java.io.* API, а не классы Commons VFS. Последнее не подходит, потому что мне приходится обходиться JDK 6 (он должен быть частью JDK 7), и я в любом случае не знаю, будет ли он без проблем работать с java.io. * (я бы не стал сделать ставку на него).
Существуют и другие решения, но я не могу их использовать по той же причине, что и не может использовать Commons VFS. О моках не может быть и речи из-за сложности рассматриваемой библиотеки.
На моей Linux-машине я могу легко создать RAM-диск и использовать java.io.* API так же, как и с файлами на диске. Дело в том, что я хочу, чтобы он был кроссплатформенным, а точнее, чтобы настройка диска была частью процедуры тестирования, а не чем-то внешним.
Итак, есть ли способ зарегистрировать RAM-диск в Java, который можно было бы использовать со стандартным API java.io.*?