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. класс) шаг. Как я могу решить проблему.
Любые предложения/помощь приветствуются.
[code] 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)[/code]
Мой тестовый код следующий: [code]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()); } [/code]
Я пытался отладить проблему, но не смог идентифицировать проблему, поскольку код не работает в ResultSet resultSet = Mockito.mock(ResultSet. класс) шаг. Как я могу решить проблему. Любые предложения/помощь приветствуются.