#java #file #filewriter
Вопрос:
У меня есть следующий код в тесте:
@Test
void genericTest() {
//stuff
createTempJsonFile(filename, body);
func.method(filename);
//stuff
}
private void createTempJsonFile(String filename, String body) {
try {
File file = new File(filename);
FileWriter writer = new FileWriter(file);
writer.write(body);
writer.close();
} catch (IOException e) {
//stuff
}
}
Файл создан правильно. Проблема в том, что func.method
не находит его, действительно, Intellij показывает мне только созданный файл (появляющийся в списке файлов) в конце выполнения теста.
Проблема не в пути к файлу, потому что при дальнейших исполнениях (когда файл уже существует, так как он был создан в конце предыдущего) тест регулярно проходит.
Мне кажется, что создание файла завершается только в конце теста, и это было бы неприемлемо, так как мне нужно работать с ним в самом тесте.
Как я могу это исправить? Есть ли способ заставить func.method
ждать, пока файл не будет сгенерирован?
Комментарии:
1. Попробуйте использовать Thread.sleep (), чтобы подождать некоторое время, пока файл не будет создан(например. Поток.сон(3000)).
2. Я пытался подключиться к Thread.sleep(20000), но безуспешно.
3. Если вам требуется настроить файл для запуска теста, почему бы вам не попробовать вызвать его в аннотации @BeforeMethod вместо вашего теста? Требуется ли, чтобы этот метод был в вашем тесте?
4. Содержимое файла зависит от некоторых данных, рассчитанных в начале самого теста
5. Я думаю, что проблема должна быть в самом вашем func.методе (), можете ли вы отобразить метод?