Можно ли смоделировать исключение создания файла в Java на Linux? - PullRequest
1 голос
/ 13 мая 2011

У меня был простой тест, чтобы убедиться, что задача ant работает правильно, и поэтому вставил недопустимые символы в файл для windows и linux следующим образом:

@Test(expected=BuildException.class)
public void destinationDirectoryCreationException() throws Exception {
    backupTask.setSrcDir(testResourceDirectory);
    backupTask.setDestDir(new File("?/"));
    backupTask.execute();
}

К сожалению, причина того, что / является недопустимым символом файла, заключается в том, что он является разделителем пути, поэтому он просто создаст каталог как обычно.

Также char 0 или nul интерпретируется различными API-интерфейсами (в частности, собственным файлом apis и обозревателем отладочных переменных eclipse) как конец потока, поэтому впоследствии все игнорируется.

1 Ответ

2 голосов
/ 13 мая 2011

Нет.Linux слишком хорош, чтобы провалиться для вашего маленького жалкого теста.

Хорошо, так что osgx фактически предложил решение, которое будет работать, в частности, для моего теста (если он (и) даст ответ, он можетполучите 15 повторений;));сделать каталог подкаталогом того, который не существует.например, backupTask.setDestDir(new File("/\\/?/"));.Единственная проблема в том, что он слегка отличается от оригинального теста, но я согласен с этим.

Также обратите внимание, что (я полагаю) он все же преуспеет в создании папки, если .mkdirs() был вызван вместо mkdir()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...