Как запустить тестовый пример Junit для FileWriter?JAVA

Программисты JAVA общаются здесь
Anonymous
Как запустить тестовый пример Junit для FileWriter?

Сообщение Anonymous »

Приведенный ниже код предназначен для записи содержимого в файл.

Код: Выделить всё

          public String saveSecretToFile() {
File file = new File("test.txt");
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
writer.write(secretValue);//secretValue is the content
} catch (IOException e) {
LOGGER.error("Error writing to file: {}", e.getMessage());
}
}
Блок catch не рассматривается в тестовом примере JUnit.

Код: Выделить всё

    @InjectMocks
private MyHelper myHelper;

try (MockedStatic mockedStatic = Mockito.mockStatic(FileOutputStream.class)) {
FileWriter mockFile = mock(FileWriter.class);
OutputStream mockFileWriter = Mockito.spy(new FileOutputStream(String.valueOf(mockFile)));

doThrow(new IOException("IO error")).when(mockFileWriter).write(anyString().getBytes());

IOException thrown = assertThrows(IOException.class, () -> myHelper.saveToFile("secretName"));

}
Я читал, что издевательство над BufferedWriter не сработает, поскольку следует издеваться над внутренним OutputStream FileWriter. Ожидаемый результат в единичном случае — создание исключения. Но результат отображается как java.lang.AssertionError: ожидалось, что будет создано исключение java.io.IOException, но ничего не было создано

Подробнее здесь: https://stackoverflow.com/questions/790 ... filewriter

Вернуться в «JAVA»