Тест Junit с Mockito: ошибка ExceptionInInitializerErrorJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Тест Junit с Mockito: ошибка ExceptionInInitializerError

Сообщение Anonymous »

во время тестов Junit я получаю следующую ошибку:

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

 java.lang.ExceptionInInitializerError
at org.mockito.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:167)
at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:217)
at org.mockito.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:117)
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:109)
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:105)
at org.mockito.cglib.proxy.Enhancer.(Enhancer.java:70)
at org.mockito.internal.creation.cglib.ClassImposterizer.createProxyClass(ClassImposterizer.java:95)
at org.mockito.internal.creation.cglib.ClassImposterizer.imposterise(ClassImposterizer.java:57)
at org.mockito.internal.creation.cglib.ClassImposterizer.imposterise(ClassImposterizer.java:49)
at org.mockito.internal.creation.cglib.CglibMockMaker.createMock(CglibMockMaker.java:24)
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:33)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:59)
at org.mockito.Mockito.mock(Mockito.java:1284)
at org.mockito.Mockito.mock(Mockito.java:1162)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible:  module java.base does not "opens java.lang" to unnamed module @6cc7b4de
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
at org.mockito.cglib.core.ReflectUtils$2.run(ReflectUtils.java:57)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at org.mockito.cglib.core.ReflectUtils.(ReflectUtils.java:47)


Мой тестовый код следующий:

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

public class DatabricksQueryExecutorTests {
@Test
public void testReadUnityTableDataAsJson() throws SQLException {
// Create a mock DatabricksConfig object
DatabricksConfig databricksConfig = new DatabricksConfig();
databricksConfig.setHost("example.com");
databricksConfig.setHttpPath("/api/2.0");
databricksConfig.setAccessToken("your-access-token");
databricksConfig.setUsername("your-username");

// Create a mock SQL query
String sqlQuery = "SELECT * FROM table";

// Create a mock ResultSet with sample data
ResultSet resultSet = Mockito.mock(ResultSet.class);
Mockito.when(resultSet.next()).thenReturn(true, false);
Mockito.when(resultSet.getMetaData()).thenReturn(Mockito.mock(ResultSetMetaData.class));
Mockito.when(resultSet.getMetaData().getColumnCount()).thenReturn(2);
Mockito.when(resultSet.getMetaData().getColumnName(1)).thenReturn("column1");
Mockito.when(resultSet.getMetaData().getColumnName(2)).thenReturn("column2");
Mockito.when(resultSet.getString(1)).thenReturn("value1");
Mockito.when(resultSet.getString(2)).thenReturn("value2");

// Create a mock Connection and Statement
Connection connection = Mockito.mock(Connection.class);
Statement statement = Mockito.mock(Statement.class);
Mockito.when(connection.createStatement()).thenReturn(statement);
Mockito.when(connection.createStatement().executeQuery(sqlQuery)).thenReturn(resultSet);

// Create an instance of DatabricksQueryExecutor
DatabricksQueryExecutor queryExecutor = new DatabricksQueryExecutor();

// Call the method under test
JsonArray jsonArray = queryExecutor.readUnityTableDataAsJson(sqlQuery, databricksConfig);

// Verify the result
Assertions.assertEquals(1, jsonArray.size());
JsonObject jsonObject = jsonArray.get(0).getAsJsonObject();
Assertions.assertEquals("value1", jsonObject.get("column1").getAsString());
Assertions.assertEquals("value2", jsonObject.get("column2").getAsString());
}
Я пытался отладить проблему, но не смог идентифицировать проблему, поскольку код не работает в ResultSet resultSet = Mockito.mock(ResultSet. класс) шаг. Как я могу решить проблему.
Любые предложения/помощь приветствуются.

Подробнее здесь: https://stackoverflow.com/questions/782 ... lizererror
Ответить

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

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

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

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

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