Код: Выделить всё
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"));
Когда я меняю его на .thenThrow(SQLException.class); работает отлично. Кто-нибудь знает, почему это происходит?
Я использую Mockito версии 4.0.0
Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-mockito