Попытка протестировать диспетчер драйверов, выбрасывающую SQLException, с помощью MockitoJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Попытка протестировать диспетчер драйверов, выбрасывающую SQLException, с помощью Mockito

Сообщение Anonymous »

Конструктор, который я тестирую, находится здесь:

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

    public Query(String sql, Object... parameters) throws SQLException {
try {
this.conn = DriverManager.getConnection(Credential.URL, Credential.USER, Credential.PASSWORD);
this.preparedQuery = conn.prepareStatement(sql);

for (int i = 0; i < parameters.length; i++) {
this.preparedQuery.setObject(i + 1, parameters[i]);
}

this.results = preparedQuery.executeQuery();
log.info("Connection established and query executed successfully.");
} catch (SQLTimeoutException e) {
log.error("Connection timeout exceeded: {}", e.getMessage());
throw e;
} catch (SQLException e) {
log.error("Error executing query: {}", e.getMessage());
throw e;
}
}
В моем тестовом классе есть этот тест:

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

    @Test
public void testConstructorThrowsSQLException() {
try (MockedStatic mockedDriverManager = mockStatic(DriverManager.class)) {

mockedDriverManager.when(() -> DriverManager.getConnection(anyString(), anyString(), anyString()))
.thenThrow(new SQLException("Database connection error"));
}
}
Проблема в том, где я говорю

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

.thenThrow(new SQLException("Database connection error"));
Новое исключение SQLException («Ошибка подключения к базе данных») приводит к тому, что Mockito выдает исключение UnfinishedStubbing.
Когда я меняю его на .thenThrow(SQLException.class); работает отлично. Кто-нибудь знает, почему это происходит?
Я использую Mockito версии 4.0.0

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-mockito
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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