You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/03/01 12:43:52 UTC

[shardingsphere] branch master updated: Use AutoMockExtension on backend proxy modules (#24408)

This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 561391b22af Use AutoMockExtension on backend proxy modules (#24408)
561391b22af is described below

commit 561391b22afade9b37e47b1c4829ae20574a6bbc
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Wed Mar 1 20:43:43 2023 +0800

    Use AutoMockExtension on backend proxy modules (#24408)
---
 ...StatementMemoryStrictlyFetchSizeSetterTest.java |  17 +--
 .../executor/MySQLAdminExecutorCreatorTest.java    |  26 ++--
 .../MySQLSetVariableAdminExecutorTest.java         |  22 ++--
 .../executor/ShowCreateDatabaseExecutorTest.java   |  35 +++---
 .../executor/ShowCurrentUserExecutorTest.java      |  21 ++--
 .../admin/executor/ShowDatabasesExecutorTest.java  | 112 ++++++++---------
 .../executor/ShowFunctionStatusExecutorTest.java   |  26 ++--
 .../executor/ShowProcedureStatusExecutorTest.java  |  26 ++--
 .../executor/ShowProcessListExecutorTest.java      |  38 +++---
 .../admin/executor/ShowTablesExecutorTest.java     | 133 ++++++++++-----------
 .../admin/executor/UseDatabaseExecutorTest.java    |  33 +++--
 .../SelectInformationSchemataExecutorTest.java     |  91 +++++++-------
 proxy/backend/type/opengauss/pom.xml               |   6 +
 ...StatementMemoryStrictlyFetchSizeSetterTest.java |  17 +--
 ...enGaussSystemCatalogAdminQueryExecutorTest.java | 113 +++++++++--------
 ...StatementMemoryStrictlyFetchSizeSetterTest.java |  17 +--
 ...ostgreSQLDefaultSessionVariableHandlerTest.java |   2 +-
 .../PostgreSQLResetVariableAdminExecutorTest.java  |   2 +-
 .../PostgreSQLSetVariableAdminExecutorTest.java    |   2 +-
 .../admin/executor/SelectDatabaseExecutorTest.java |  89 +++++++-------
 .../admin/executor/SelectTableExecutorTest.java    |  43 +++----
 proxy/frontend/type/opengauss/pom.xml              |   2 +-
 22 files changed, 406 insertions(+), 467 deletions(-)

diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java
index 04f0ead1786..c2b6fa7508c 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -20,29 +20,30 @@ package org.apache.shardingsphere.proxy.backend.mysql.connector.jdbc.statement;
 import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.sql.Statement;
 
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class MySQLStatementMemoryStrictlyFetchSizeSetterTest {
     
     @Test
     public void assertSetFetchSize() throws SQLException {
         Statement statement = mock(Statement.class);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            new MySQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
-            verify(statement).setFetchSize(Integer.MIN_VALUE);
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        new MySQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
+        verify(statement).setFetchSize(Integer.MIN_VALUE);
     }
     
     private static ContextManager mockContextManager() {
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java
index 68f5b344f66..391f2d67d79 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java
@@ -50,12 +50,11 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQ
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLDeleteStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLSelectStatement;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.jupiter.api.AfterEach;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.junit.jupiter.MockitoExtension;
 
 import java.util.Collections;
 import java.util.Map;
@@ -69,23 +68,16 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
-@ExtendWith(MockitoExtension.class)
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class MySQLAdminExecutorCreatorTest {
     
-    private final MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS);
-    
     @SuppressWarnings("rawtypes")
     @Mock
     private SQLStatementContext sqlStatementContext;
     
-    @AfterEach
-    public void tearDown() {
-        proxyContext.close();
-    }
-    
     @Test
     public void assertCreateWithMySQLShowFunctionStatus() {
         when(sqlStatementContext.getSqlStatement()).thenReturn(new MySQLShowFunctionStatusStatement());
@@ -256,8 +248,8 @@ public final class MySQLAdminExecutorCreatorTest {
         ShardingSphereDatabase database = new ShardingSphereDatabase("db_0", mock(DatabaseType.class), resourceMetaData, mock(ShardingSphereRuleMetaData.class), Collections.emptyMap());
         Map<String, ShardingSphereDatabase> result = Collections.singletonMap("db_0", database);
         initProxyContext(result);
-        proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
-        proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
+        when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
         MySQLSelectStatement mySQLSelectStatement = mock(MySQLSelectStatement.class);
         when(mySQLSelectStatement.getFrom()).thenReturn(null);
         ProjectionsSegment projectionsSegment = mock(ProjectionsSegment.class);
@@ -274,8 +266,8 @@ public final class MySQLAdminExecutorCreatorTest {
         ShardingSphereDatabase database = new ShardingSphereDatabase("db_0", mock(DatabaseType.class), resourceMetaData, mock(ShardingSphereRuleMetaData.class), Collections.emptyMap());
         Map<String, ShardingSphereDatabase> result = Collections.singletonMap("db_0", database);
         initProxyContext(result);
-        proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
-        proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
+        when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
         MySQLSelectStatement mySQLSelectStatement = mock(MySQLSelectStatement.class);
         when(mySQLSelectStatement.getFrom()).thenReturn(null);
         ProjectionsSegment projectionsSegment = mock(ProjectionsSegment.class);
@@ -342,7 +334,7 @@ public final class MySQLAdminExecutorCreatorTest {
         MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
                 new ShardingSphereMetaData(databases, mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())));
         when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
-        proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
     }
     
     @Test
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java
index 7a9d9212ac9..2d9946257a1 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java
@@ -32,10 +32,11 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableAssig
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.SetStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLSetStatement;
-import org.junit.jupiter.api.AfterEach;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.MockedConstruction;
-import org.mockito.MockedStatic;
 
 import java.sql.SQLException;
 import java.util.Collections;
@@ -43,30 +44,24 @@ import java.util.Collections;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockConstruction;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class MySQLSetVariableAdminExecutorTest {
     
-    private final MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS);
-    
-    @AfterEach
-    public void tearDown() {
-        proxyContext.close();
-    }
-    
     @Test
     public void assertExecute() throws SQLException {
         SetStatement setStatement = prepareSetStatement();
         MySQLSetVariableAdminExecutor executor = new MySQLSetVariableAdminExecutor(setStatement);
         ConnectionSession connectionSession = mock(ConnectionSession.class);
-        when(connectionSession.getDatabaseName()).thenReturn("db");
+        when(connectionSession.getDatabaseName()).thenReturn("foo_db");
         BackendConnection backendConnection = mock(BackendConnection.class);
         when(connectionSession.getBackendConnection()).thenReturn(backendConnection);
         when(backendConnection.getConnectionSession()).thenReturn(connectionSession);
         ContextManager contextManager = mockContextManager();
-        proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         try (MockedConstruction<DatabaseConnector> mockConstruction = mockConstruction(DatabaseConnector.class)) {
             executor.execute(connectionSession);
             verify(mockConstruction.constructed().get(0)).execute();
@@ -94,8 +89,7 @@ public final class MySQLSetVariableAdminExecutorTest {
     
     private ContextManager mockContextManager() {
         ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-        when(result.getMetaDataContexts().getMetaData().getDatabase("db")).thenReturn(mock(ShardingSphereDatabase.class));
-        when(result.getMetaDataContexts().getMetaData().containsDatabase("db")).thenReturn(true);
+        when(result.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(mock(ShardingSphereDatabase.class));
         when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData())
                 .thenReturn(new ShardingSphereRuleMetaData(Collections.singleton(new SQLParserRule(new SQLParserRuleConfiguration(false, new CacheOption(1, 1), new CacheOption(1, 1))))));
         return result;
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java
index b5d06b5cffb..6119384195a 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java
@@ -22,15 +22,16 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowCreateDatabaseStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.util.HashMap;
@@ -41,9 +42,10 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class ShowCreateDatabaseExecutorTest {
     
     private static final String DATABASE_PATTERN = "db_%s";
@@ -54,16 +56,14 @@ public final class ShowCreateDatabaseExecutorTest {
         statement.setDatabaseName("db_0");
         ShowCreateDatabaseExecutor executor = new ShowCreateDatabaseExecutor(statement);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().databaseExists("db_0")).thenReturn(true);
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            int count = 0;
-            while (executor.getMergedResult().next()) {
-                assertThat(executor.getMergedResult().getValue(1, Object.class), is(String.format(DATABASE_PATTERN, count)));
-                count++;
-            }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().databaseExists("db_0")).thenReturn(true);
+        executor.execute(mock(ConnectionSession.class));
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        int count = 0;
+        while (executor.getMergedResult().next()) {
+            assertThat(executor.getMergedResult().getValue(1, Object.class), is(String.format(DATABASE_PATTERN, count)));
+            count++;
         }
     }
     
@@ -85,11 +85,4 @@ public final class ShowCreateDatabaseExecutorTest {
         }
         return result;
     }
-    
-    private ConnectionSession mockConnectionSession() {
-        ConnectionSession result = mock(ConnectionSession.class);
-        when(result.getGrantee()).thenReturn(new Grantee("root", ""));
-        when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
-        return result;
-    }
 }
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java
index 01697eedb82..e8c73d60f5a 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java
@@ -28,8 +28,10 @@ import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.util.Collections;
@@ -41,9 +43,10 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class ShowCurrentUserExecutorTest {
     
     private static final Grantee GRANTEE = new Grantee("root", "");
@@ -52,13 +55,11 @@ public final class ShowCurrentUserExecutorTest {
     public void assertExecute() throws SQLException {
         ShowCurrentUserExecutor executor = new ShowCurrentUserExecutor();
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
-            while (executor.getMergedResult().next()) {
-                assertThat(executor.getMergedResult().getValue(1, Object.class), is("root@%"));
-            }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+        while (executor.getMergedResult().next()) {
+            assertThat(executor.getMergedResult().getValue(1, Object.class), is("root@%"));
         }
     }
     
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
index 71d1b2c13c5..1611909c0f5 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
@@ -33,8 +33,12 @@ import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.ShowFilterSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.ShowLikeSegment;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowDatabasesStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import java.sql.SQLException;
 import java.util.Collection;
@@ -51,26 +55,24 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public final class ShowDatabasesExecutorTest {
     
     private static final String DATABASE_PATTERN = "database_%s";
     
-    private ShowDatabasesExecutor executor = new ShowDatabasesExecutor(new MySQLShowDatabasesStatement());
-    
     @Test
     public void assertExecute() throws SQLException {
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
-                    .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
-            assertThat(getActual(), is(getExpected()));
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+        ShowDatabasesExecutor executor = new ShowDatabasesExecutor(new MySQLShowDatabasesStatement());
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+        assertThat(getActual(executor), is(getExpected()));
     }
     
     @Test
@@ -81,17 +83,14 @@ public final class ShowDatabasesExecutorTest {
         showFilterSegment.setLike(showLikeSegment);
         showDatabasesStatement.setFilter(showFilterSegment);
         ContextManager contextManager = mockContextManager();
-        executor = new ShowDatabasesExecutor(showDatabasesStatement);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
-                    .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
-            executor.execute(mockConnectionSession());
-            assertThat(getActual(), is(getExpected()));
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+        ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+        executor.execute(mockConnectionSession());
+        assertThat(getActual(executor), is(getExpected()));
     }
     
-    private Collection<String> getActual() throws SQLException {
+    private Collection<String> getActual(final ShowDatabasesExecutor executor) throws SQLException {
         Map<String, String> result = new ConcurrentHashMap<>(10, 1);
         while (executor.getMergedResult().next()) {
             String value = executor.getMergedResult().getValue(1, Object.class).toString();
@@ -116,21 +115,18 @@ public final class ShowDatabasesExecutorTest {
         ShowLikeSegment showLikeSegment = new ShowLikeSegment(0, 0, "%_1");
         showFilterSegment.setLike(showLikeSegment);
         showDatabasesStatement.setFilter(showFilterSegment);
-        executor = new ShowDatabasesExecutor(showDatabasesStatement);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
-                    .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
-            int count = 0;
-            while (executor.getMergedResult().next()) {
-                assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_1"));
-                count++;
-            }
-            assertThat(count, is(1));
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+        ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+        int count = 0;
+        while (executor.getMergedResult().next()) {
+            assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_1"));
+            count++;
         }
+        assertThat(count, is(1));
     }
     
     @Test
@@ -140,21 +136,18 @@ public final class ShowDatabasesExecutorTest {
         ShowLikeSegment showLikeSegment = new ShowLikeSegment(0, 0, "database_9");
         showFilterSegment.setLike(showLikeSegment);
         showDatabasesStatement.setFilter(showFilterSegment);
-        executor = new ShowDatabasesExecutor(showDatabasesStatement);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
-                    .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
-            int count = 0;
-            while (executor.getMergedResult().next()) {
-                assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_9"));
-                count++;
-            }
-            assertThat(count, is(1));
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+        ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+        int count = 0;
+        while (executor.getMergedResult().next()) {
+            assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_9"));
+            count++;
         }
+        assertThat(count, is(1));
     }
     
     @Test
@@ -164,21 +157,18 @@ public final class ShowDatabasesExecutorTest {
         ShowLikeSegment showLikeSegment = new ShowLikeSegment(0, 0, "not_exist_database");
         showFilterSegment.setLike(showLikeSegment);
         showDatabasesStatement.setFilter(showFilterSegment);
-        executor = new ShowDatabasesExecutor(showDatabasesStatement);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
-                    .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
-            int count = 0;
-            while (executor.getMergedResult().next()) {
-                assertThat(executor.getMergedResult().getValue(1, Object.class), is("not_exist_database"));
-                count++;
-            }
-            assertThat(count, is(0));
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+        ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+        int count = 0;
+        while (executor.getMergedResult().next()) {
+            assertThat(executor.getMergedResult().getValue(1, Object.class), is("not_exist_database"));
+            count++;
         }
+        assertThat(count, is(0));
     }
     
     private ContextManager mockContextManager() {
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java
index e59df62616f..003ee8a34c6 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java
@@ -22,15 +22,16 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowFunctionStatusStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.util.HashMap;
@@ -41,9 +42,10 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class ShowFunctionStatusExecutorTest {
     
     private static final String DATABASE_PATTERN = "db_%s";
@@ -52,11 +54,9 @@ public final class ShowFunctionStatusExecutorTest {
     public void assertExecute() throws SQLException {
         ShowFunctionStatusExecutor executor = new ShowFunctionStatusExecutor(new MySQLShowFunctionStatusStatement());
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        executor.execute(mock(ConnectionSession.class));
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
     }
     
     private ContextManager mockContextManager() {
@@ -72,17 +72,9 @@ public final class ShowFunctionStatusExecutorTest {
         Map<String, ShardingSphereDatabase> result = new HashMap<>(10, 1);
         for (int i = 0; i < 10; i++) {
             ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
-            when(database.isComplete()).thenReturn(false);
             when(database.getProtocolType()).thenReturn(new MySQLDatabaseType());
             result.put(String.format(DATABASE_PATTERN, i), database);
         }
         return result;
     }
-    
-    private ConnectionSession mockConnectionSession() {
-        ConnectionSession result = mock(ConnectionSession.class);
-        when(result.getGrantee()).thenReturn(new Grantee("root", ""));
-        when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
-        return result;
-    }
 }
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java
index e04c912ac8d..b5be6fe7e60 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java
@@ -22,15 +22,16 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowProcedureStatusStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.util.HashMap;
@@ -41,9 +42,10 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class ShowProcedureStatusExecutorTest {
     
     private static final String DATABASE_PATTERN = "db_%s";
@@ -52,11 +54,9 @@ public final class ShowProcedureStatusExecutorTest {
     public void assertExecute() throws SQLException {
         ShowProcedureStatusExecutor executor = new ShowProcedureStatusExecutor(new MySQLShowProcedureStatusStatement());
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        executor.execute(mock(ConnectionSession.class));
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
     }
     
     private ContextManager mockContextManager() {
@@ -72,17 +72,9 @@ public final class ShowProcedureStatusExecutorTest {
         Map<String, ShardingSphereDatabase> result = new HashMap<>(10, 1);
         for (int i = 0; i < 10; i++) {
             ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
-            when(database.isComplete()).thenReturn(false);
             when(database.getProtocolType()).thenReturn(new MySQLDatabaseType());
             result.put(String.format(DATABASE_PATTERN, i), database);
         }
         return result;
     }
-    
-    private ConnectionSession mockConnectionSession() {
-        ConnectionSession result = mock(ConnectionSession.class);
-        when(result.getGrantee()).thenReturn(new Grantee("root", ""));
-        when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
-        return result;
-    }
 }
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
index 86c27f0cd3d..001cfc3ad1e 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
@@ -23,9 +23,11 @@ import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.apache.shardingsphere.transaction.api.TransactionType;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.internal.configuration.plugins.Plugins;
 
 import java.sql.SQLException;
@@ -35,28 +37,28 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class ShowProcessListExecutorTest {
     
     @Test
     public void assertExecute() throws SQLException, ReflectiveOperationException {
         ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            ShowProcessListExecutor showProcessListExecutor = new ShowProcessListExecutor();
-            setupBatchProcessContexts(showProcessListExecutor);
-            showProcessListExecutor.execute(new ConnectionSession(mock(MySQLDatabaseType.class), TransactionType.LOCAL, new DefaultAttributeMap()));
-            assertThat(showProcessListExecutor.getQueryResultMetaData().getColumnCount(), is(8));
-            MergedResult mergedResult = showProcessListExecutor.getMergedResult();
-            while (mergedResult.next()) {
-                assertThat(mergedResult.getValue(1, String.class), is("f6c2336a-63ba-41bf-941e-2e3504eb2c80"));
-                assertThat(mergedResult.getValue(2, String.class), is("sharding"));
-                assertThat(mergedResult.getValue(3, String.class), is("127.0.0.1"));
-                assertThat(mergedResult.getValue(4, String.class), is("sharding_db"));
-                assertThat(mergedResult.getValue(7, String.class), is("Executing 1/2"));
-                assertThat(mergedResult.getValue(8, String.class), is("alter table t_order add column a varchar(64) after order_id"));
-            }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        ShowProcessListExecutor showProcessListExecutor = new ShowProcessListExecutor();
+        setupBatchProcessContexts(showProcessListExecutor);
+        showProcessListExecutor.execute(new ConnectionSession(mock(MySQLDatabaseType.class), TransactionType.LOCAL, new DefaultAttributeMap()));
+        assertThat(showProcessListExecutor.getQueryResultMetaData().getColumnCount(), is(8));
+        MergedResult mergedResult = showProcessListExecutor.getMergedResult();
+        while (mergedResult.next()) {
+            assertThat(mergedResult.getValue(1, String.class), is("f6c2336a-63ba-41bf-941e-2e3504eb2c80"));
+            assertThat(mergedResult.getValue(2, String.class), is("sharding"));
+            assertThat(mergedResult.getValue(3, String.class), is("127.0.0.1"));
+            assertThat(mergedResult.getValue(4, String.class), is("sharding_db"));
+            assertThat(mergedResult.getValue(7, String.class), is("Executing 1/2"));
+            assertThat(mergedResult.getValue(8, String.class), is("alter table t_order add column a varchar(64) after order_id"));
         }
     }
     
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java
index 9990c135ecf..db8ac8fe43f 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
@@ -39,8 +38,12 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.ShowLikeSegme
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTablesStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import java.sql.SQLException;
 import java.util.Collections;
@@ -51,12 +54,14 @@ import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public final class ShowTablesExecutorTest {
     
     private static final String DATABASE_PATTERN = "db_%s";
@@ -66,21 +71,19 @@ public final class ShowTablesExecutorTest {
         ShowTablesExecutor executor = new ShowTablesExecutor(new MySQLShowTablesStatement(), DatabaseTypeEngine.getDatabaseType("MySQL"));
         Map<String, ShardingSphereDatabase> databases = getDatabases();
         ContextManager contextManager = mockContextManager(databases);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
@@ -92,19 +95,17 @@ public final class ShowTablesExecutorTest {
         ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
         Map<String, ShardingSphereDatabase> databases = getDatabases();
         ContextManager contextManager = mockContextManager(databases);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
@@ -116,15 +117,13 @@ public final class ShowTablesExecutorTest {
         ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
         Map<String, ShardingSphereDatabase> databases = getDatabases();
         ContextManager contextManager = mockContextManager(databases);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
@@ -136,15 +135,13 @@ public final class ShowTablesExecutorTest {
         ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
         Map<String, ShardingSphereDatabase> databases = getDatabases();
         ContextManager contextManager = mockContextManager(databases);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
@@ -156,15 +153,13 @@ public final class ShowTablesExecutorTest {
         ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
         Map<String, ShardingSphereDatabase> databases = getDatabases();
         ContextManager contextManager = mockContextManager(databases);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
-            executor.execute(mockConnectionSession());
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            executor.getMergedResult().next();
-            assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+        executor.execute(mockConnectionSession());
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        executor.getMergedResult().next();
+        assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
@@ -173,15 +168,13 @@ public final class ShowTablesExecutorTest {
         showTablesStatement.setFromSchema(new FromSchemaSegment(0, 0, new DatabaseSegment(0, 0, new IdentifierValue("uncompleted"))));
         ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
         ContextManager contextManager = mockContextManager(getDatabases());
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            executor.execute(mockConnectionSession());
-            QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
-            assertThat(actualMetaData.getColumnCount(), is(2));
-            assertThat(actualMetaData.getColumnName(1), is("Tables_in_uncompleted"));
-            MergedResult actualResult = executor.getMergedResult();
-            assertFalse(actualResult.next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        executor.execute(mockConnectionSession());
+        QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+        assertThat(actualMetaData.getColumnCount(), is(2));
+        assertThat(actualMetaData.getColumnName(1), is("Tables_in_uncompleted"));
+        MergedResult actualResult = executor.getMergedResult();
+        assertFalse(actualResult.next());
     }
     
     private ContextManager mockContextManager(final Map<String, ShardingSphereDatabase> databases) {
@@ -206,14 +199,12 @@ public final class ShowTablesExecutorTest {
         Map<String, ShardingSphereDatabase> result = new HashMap<>(2, 1);
         result.put(String.format(DATABASE_PATTERN, 0), database);
         ShardingSphereDatabase uncompletedDatabase = mock(ShardingSphereDatabase.class);
-        when(uncompletedDatabase.isComplete()).thenReturn(false);
         result.put("uncompleted", uncompletedDatabase);
         return result;
     }
     
     private ConnectionSession mockConnectionSession() {
         ConnectionSession result = mock(ConnectionSession.class);
-        when(result.getGrantee()).thenReturn(new Grantee("root", ""));
         when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
         return result;
     }
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java
index 25fbc7e6779..ab3b8d03e32 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java
@@ -29,25 +29,26 @@ import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLUseStatement;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.junit.MockitoJUnitRunner;
 
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
 import java.util.Properties;
 
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class UseDatabaseExecutorTest {
     
     private static final String DATABASE_PATTERN = "db_%s";
@@ -60,25 +61,21 @@ public final class UseDatabaseExecutorTest {
         MySQLUseStatement useStatement = mock(MySQLUseStatement.class);
         when(useStatement.getSchema()).thenReturn(String.format(DATABASE_PATTERN, 0));
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().databaseExists("db_0")).thenReturn(true);
-            UseDatabaseExecutor executor = new UseDatabaseExecutor(useStatement);
-            executor.execute(connectionSession);
-            verify(connectionSession).setCurrentDatabase(anyString());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().databaseExists("db_0")).thenReturn(true);
+        UseDatabaseExecutor executor = new UseDatabaseExecutor(useStatement);
+        executor.execute(connectionSession);
+        verify(connectionSession).setCurrentDatabase(anyString());
     }
     
-    @Test(expected = UnknownDatabaseException.class)
+    @Test
     public void assertExecuteUseStatementBackendHandlerWhenSchemaNotExist() {
         MySQLUseStatement useStatement = mock(MySQLUseStatement.class);
         when(useStatement.getSchema()).thenReturn(String.format(DATABASE_PATTERN, 10));
         UseDatabaseExecutor executor = new UseDatabaseExecutor(useStatement);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            executor.execute(connectionSession);
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        assertThrows(UnknownDatabaseException.class, () -> executor.execute(connectionSession));
     }
     
     private ContextManager mockContextManager() {
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
index cd1d0ec7d3f..3724f93cf5e 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
@@ -35,12 +35,14 @@ import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import java.sql.Connection;
 import java.sql.ResultSet;
@@ -57,15 +59,16 @@ import java.util.stream.Collectors;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public final class SelectInformationSchemataExecutorTest {
     
     private final Grantee grantee = new Grantee("root", "127.0.0.1");
@@ -77,7 +80,7 @@ public final class SelectInformationSchemataExecutorTest {
     @Mock
     private ConnectionSession connectionSession;
     
-    @Before
+    @BeforeEach
     public void setUp() {
         when(connectionSession.getGrantee()).thenReturn(grantee);
         statement = (SelectStatement) new SQLParserRule(new DefaultSQLParserRuleConfigurationBuilder().build()).getSQLParserEngine("MySQL").parse(sql, false);
@@ -85,15 +88,13 @@ public final class SelectInformationSchemataExecutorTest {
     
     @Test
     public void assertExecuteWithUnauthorizedDatabase() throws SQLException {
-        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
         ContextManager contextManager = mockContextManager(createDatabase("no_auth_db"));
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("no_auth_db"));
-            executor.execute(connectionSession);
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("no_auth_db"));
+        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+        executor.execute(connectionSession);
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
@@ -101,48 +102,42 @@ public final class SelectInformationSchemataExecutorTest {
         Map<String, String> expectedResultSetMap = new HashMap<>(2, 1);
         expectedResultSetMap.put("SCHEMA_NAME", "foo_ds");
         expectedResultSetMap.put("DEFAULT_COLLATION_NAME", "utf8mb4");
-        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
         ShardingSphereDatabase database = createDatabase(expectedResultSetMap);
         ContextManager contextManager = mockContextManager(database);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("auth_db")).thenReturn(database);
-            executor.execute(connectionSession);
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            assertTrue(executor.getMergedResult().next());
-            assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
-            assertThat(executor.getMergedResult().getValue(2, String.class), is("utf8mb4"));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
+        when(ProxyContext.getInstance().getDatabase("auth_db")).thenReturn(database);
+        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+        executor.execute(connectionSession);
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        assertTrue(executor.getMergedResult().next());
+        assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
+        assertThat(executor.getMergedResult().getValue(2, String.class), is("utf8mb4"));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
     public void assertExecuteWithAuthorizedDatabaseAndEmptyResource() throws SQLException {
-        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
         ContextManager contextManager = mockContextManager(createDatabase("auth_db"));
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
-            executor.execute(connectionSession);
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-            assertTrue(executor.getMergedResult().next());
-            assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
-            assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
-            assertFalse(executor.getMergedResult().next());
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
+        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+        executor.execute(connectionSession);
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+        assertTrue(executor.getMergedResult().next());
+        assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
+        assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
+        assertFalse(executor.getMergedResult().next());
     }
     
     @Test
     public void assertExecuteWithoutDatabase() throws SQLException {
-        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
-            executor.execute(connectionSession);
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
+        SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+        executor.execute(connectionSession);
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
     }
     
     private ContextManager mockContextManager(final ShardingSphereDatabase... databases) {
diff --git a/proxy/backend/type/opengauss/pom.xml b/proxy/backend/type/opengauss/pom.xml
index 9fe6b20c72e..1c5f4800ba1 100644
--- a/proxy/backend/type/opengauss/pom.xml
+++ b/proxy/backend/type/opengauss/pom.xml
@@ -38,5 +38,11 @@
             <artifactId>shardingsphere-proxy-backend-postgresql</artifactId>
             <version>${project.version}</version>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-test-util</artifactId>
+            <version>${project.version}</version>
+        </dependency>
     </dependencies>
 </project>
diff --git a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java
index c38c535c23e..ed089fd8d5e 100644
--- a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java
+++ b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -20,29 +20,30 @@ package org.apache.shardingsphere.proxy.backend.opengauss.connector.jdbc.stateme
 import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.sql.Statement;
 
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class OpenGaussStatementMemoryStrictlyFetchSizeSetterTest {
     
     @Test
     public void assertSetFetchSize() throws SQLException {
         Statement statement = mock(Statement.class);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            new OpenGaussStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
-            verify(statement).setFetchSize(1);
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        new OpenGaussStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
+        verify(statement).setFetchSize(1);
     }
     
     private static ContextManager mockContextManager() {
diff --git a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
index 82f199f8298..dc041e282a0 100644
--- a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
+++ b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
@@ -22,8 +22,10 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryRe
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.sql.Types;
@@ -32,82 +34,75 @@ import java.util.Arrays;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class OpenGaussSystemCatalogAdminQueryExecutorTest {
     
     @Test
     public void assertExecuteSelectFromPgDatabase() throws SQLException {
-        try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
-            mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
-            when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("foo", "bar", "sharding_db", "other_db"));
-            OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select datname, datcompatibility from pg_database where datname = 'sharding_db'");
-            ConnectionSession connectionSession = mock(ConnectionSession.class);
-            when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
-            executor.execute(connectionSession);
-            QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
-            assertThat(actualMetaData.getColumnCount(), is(2));
-            assertThat(actualMetaData.getColumnName(1), is("datname"));
-            assertThat(actualMetaData.getColumnName(2), is("datcompatibility"));
-            MergedResult actualResult = executor.getMergedResult();
-            assertTrue(actualResult.next());
-            assertThat(actualResult.getValue(1, String.class), is("sharding_db"));
-            assertThat(actualResult.getValue(2, String.class), is("PG"));
-        }
+        when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("foo", "bar", "sharding_db", "other_db"));
+        OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select datname, datcompatibility from pg_database where datname = 'sharding_db'");
+        ConnectionSession connectionSession = mock(ConnectionSession.class);
+        when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+        executor.execute(connectionSession);
+        QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+        assertThat(actualMetaData.getColumnCount(), is(2));
+        assertThat(actualMetaData.getColumnName(1), is("datname"));
+        assertThat(actualMetaData.getColumnName(2), is("datcompatibility"));
+        MergedResult actualResult = executor.getMergedResult();
+        assertTrue(actualResult.next());
+        assertThat(actualResult.getValue(1, String.class), is("sharding_db"));
+        assertThat(actualResult.getValue(2, String.class), is("PG"));
     }
     
     @Test
     public void assertExecuteSelectVersion() throws SQLException {
-        try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
-            mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
-            OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select VERSION()");
-            ConnectionSession connectionSession = mock(ConnectionSession.class);
-            when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
-            executor.execute(connectionSession);
-            QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
-            assertThat(actualMetaData.getColumnCount(), is(1));
-            assertThat(actualMetaData.getColumnType(1), is(Types.VARCHAR));
-            MergedResult actualResult = executor.getMergedResult();
-            assertTrue(actualResult.next());
-            assertThat((String) actualResult.getValue(1, String.class), containsString("ShardingSphere-Proxy"));
-        }
+        when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+        OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select VERSION()");
+        ConnectionSession connectionSession = mock(ConnectionSession.class);
+        when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+        executor.execute(connectionSession);
+        QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+        assertThat(actualMetaData.getColumnCount(), is(1));
+        assertThat(actualMetaData.getColumnType(1), is(Types.VARCHAR));
+        MergedResult actualResult = executor.getMergedResult();
+        assertTrue(actualResult.next());
+        assertThat((String) actualResult.getValue(1, String.class), containsString("ShardingSphere-Proxy"));
     }
     
     @Test
     public void assertExecuteSelectGsPasswordDeadlineAndIntervalToNum() throws SQLException {
-        try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
-            mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
-            OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select intervaltonum(gs_password_deadline())");
-            ConnectionSession connectionSession = mock(ConnectionSession.class);
-            when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
-            executor.execute(connectionSession);
-            QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
-            assertThat(actualMetaData.getColumnCount(), is(1));
-            assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
-            MergedResult actualResult = executor.getMergedResult();
-            assertTrue(actualResult.next());
-            assertThat(actualResult.getValue(1, Integer.class), is(90));
-        }
+        when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+        OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select intervaltonum(gs_password_deadline())");
+        ConnectionSession connectionSession = mock(ConnectionSession.class);
+        when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+        executor.execute(connectionSession);
+        QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+        assertThat(actualMetaData.getColumnCount(), is(1));
+        assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
+        MergedResult actualResult = executor.getMergedResult();
+        assertTrue(actualResult.next());
+        assertThat(actualResult.getValue(1, Integer.class), is(90));
     }
     
     @Test
     public void assertExecuteSelectGsPasswordNotifyTime() throws SQLException {
-        try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
-            mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
-            OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select gs_password_notifytime()");
-            ConnectionSession connectionSession = mock(ConnectionSession.class);
-            when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
-            executor.execute(connectionSession);
-            QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
-            assertThat(actualMetaData.getColumnCount(), is(1));
-            assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
-            MergedResult actualResult = executor.getMergedResult();
-            assertTrue(actualResult.next());
-            assertThat(actualResult.getValue(1, Integer.class), is(7));
-        }
+        when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+        OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select gs_password_notifytime()");
+        ConnectionSession connectionSession = mock(ConnectionSession.class);
+        when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+        executor.execute(connectionSession);
+        QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+        assertThat(actualMetaData.getColumnCount(), is(1));
+        assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
+        MergedResult actualResult = executor.getMergedResult();
+        assertTrue(actualResult.next());
+        assertThat(actualResult.getValue(1, Integer.class), is(7));
     }
 }
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java
index bf748198f7b..5a761d6e7af 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -20,29 +20,30 @@ package org.apache.shardingsphere.proxy.backend.postgresql.connector.jdbc.statem
 import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.SQLException;
 import java.sql.Statement;
 
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest {
     
     @Test
     public void assertSetFetchSize() throws SQLException {
         Statement statement = mock(Statement.class);
         ContextManager contextManager = mockContextManager();
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            new PostgreSQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
-            verify(statement).setFetchSize(1);
-        }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        new PostgreSQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
+        verify(statement).setFetchSize(1);
     }
     
     private static ContextManager mockContextManager() {
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java
index 71596691fc5..db1041f48f8 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.proxy.backend.handler.admin.executor.ReplayedSessionVariablesProvider;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.proxy.backend.session.RequiredSessionVariableRecorder;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.mockito.MockedStatic;
 
 import java.util.Collections;
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java
index b44d5f6b89d..9cd38b63fdc 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.proxy.backend.postgresql.handler.admin;
 
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLResetParameterStatement;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.mockito.MockedStatic;
 
 import static org.mockito.Mockito.mock;
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java
index 045afb13f9a..ee1b14e504e 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableAssignSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableSegment;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLSetStatement;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.mockito.MockedStatic;
 
 import static org.mockito.Mockito.mock;
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java
index 6ad277d0816..4b3ecddefe2 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java
@@ -32,8 +32,10 @@ import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.Connection;
 import java.sql.ResultSet;
@@ -49,13 +51,14 @@ import java.util.stream.Collectors;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class SelectDatabaseExecutorTest {
     
     private final SQLParserRule sqlParserRule = new SQLParserRule(new DefaultSQLParserRuleConfigurationBuilder().build());
@@ -68,29 +71,27 @@ public final class SelectDatabaseExecutorTest {
         ShardingSphereDatabase shardingDatabase = createShardingDatabase();
         ShardingSphereDatabase emptyDatabase = createEmptyDatabase();
         ContextManager contextManager = mockContextManager(shardingDatabase, emptyDatabase);
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("sharding_db", "empty_db"));
+        when(ProxyContext.getInstance().getDatabase("sharding_db")).thenReturn(shardingDatabase);
+        when(ProxyContext.getInstance().getDatabase("empty_db")).thenReturn(emptyDatabase);
         SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("sharding_db", "empty_db"));
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("sharding_db")).thenReturn(shardingDatabase);
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("empty_db")).thenReturn(emptyDatabase);
-            executor.execute(mock(ConnectionSession.class));
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(4));
-            int count = 0;
-            while (executor.getMergedResult().next()) {
-                count++;
-                if ("sharding_db".equals(executor.getMergedResult().getValue(1, String.class))) {
-                    assertThat(executor.getMergedResult().getValue(2, String.class), is("postgres"));
-                    assertThat(executor.getMergedResult().getValue(3, String.class), is("-1"));
-                } else if ("empty_db".equals(executor.getMergedResult().getValue(1, String.class))) {
-                    assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
-                    assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
-                } else {
-                    fail("expected : `sharding_db` or `empty_db`");
-                }
+        executor.execute(mock(ConnectionSession.class));
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(4));
+        int count = 0;
+        while (executor.getMergedResult().next()) {
+            count++;
+            if ("sharding_db".equals(executor.getMergedResult().getValue(1, String.class))) {
+                assertThat(executor.getMergedResult().getValue(2, String.class), is("postgres"));
+                assertThat(executor.getMergedResult().getValue(3, String.class), is("-1"));
+            } else if ("empty_db".equals(executor.getMergedResult().getValue(1, String.class))) {
+                assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
+                assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
+            } else {
+                fail("expected : `sharding_db` or `empty_db`");
             }
-            assertThat(count, is(2));
         }
+        assertThat(count, is(2));
     }
     
     @Test
@@ -99,14 +100,12 @@ public final class SelectDatabaseExecutorTest {
                 + "d.datcollate, d.datctype, shobj_description(d.oid, 'pg_database') AS description, d.datconnlimit, t.spcname, d.encoding, pg_encoding_to_char(d.encoding) AS encodingname "
                 + "FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid;";
         ContextManager contextManager = mockContextManager(createEmptyDatabase());
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
         SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
-            executor.execute(mock(ConnectionSession.class));
-            while (executor.getMergedResult().next()) {
-                assertThat(executor.getMergedResult().getValue(1, String.class), is("empty_db"));
-            }
+        executor.execute(mock(ConnectionSession.class));
+        while (executor.getMergedResult().next()) {
+            assertThat(executor.getMergedResult().getValue(1, String.class), is("empty_db"));
         }
     }
     
@@ -114,17 +113,15 @@ public final class SelectDatabaseExecutorTest {
     public void assertSelectDatabaseWithoutDataSourceExecuteAndWithColumnProjectionSegment() throws SQLException {
         String sql = "SELECT d.oid, d.datname AS databasename, d.datacl, d.datistemplate FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid;";
         ContextManager contextManager = mockContextManager(createEmptyDatabase());
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
         SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
-            executor.execute(mock(ConnectionSession.class));
-            while (executor.getMergedResult().next()) {
-                assertThat(executor.getMergedResult().getValue(1, String.class), is(""));
-                assertThat(executor.getMergedResult().getValue(2, String.class), is("empty_db"));
-                assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
-                assertThat(executor.getMergedResult().getValue(4, String.class), is(""));
-            }
+        executor.execute(mock(ConnectionSession.class));
+        while (executor.getMergedResult().next()) {
+            assertThat(executor.getMergedResult().getValue(1, String.class), is(""));
+            assertThat(executor.getMergedResult().getValue(2, String.class), is("empty_db"));
+            assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
+            assertThat(executor.getMergedResult().getValue(4, String.class), is(""));
         }
     }
     
@@ -132,13 +129,11 @@ public final class SelectDatabaseExecutorTest {
     public void assertSelectDatabaseInNoSchemaExecute() throws SQLException {
         String sql = "SELECT d.oid, d.datname AS databasename, d.datacl, d.datistemplate FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid;";
         ContextManager contextManager = mockContextManager();
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
         SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
-            executor.execute(mock(ConnectionSession.class));
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
-        }
+        executor.execute(mock(ConnectionSession.class));
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
     }
     
     private static ContextManager mockContextManager(final ShardingSphereDatabase... databases) {
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java
index 67c1fd06421..590fe7e0436 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java
@@ -31,8 +31,10 @@ import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import java.sql.Connection;
 import java.sql.ResultSet;
@@ -46,39 +48,38 @@ import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
 public final class SelectTableExecutorTest {
     
     @Test
     public void assertExecute() throws SQLException {
         String sql = "SELECT c.oid, n.nspname AS schemaname, c.relname AS tablename from pg_tablespace";
-        SelectTableExecutor executor = new SelectTableExecutor(sql);
         ShardingSphereDatabase database = createDatabase();
         ContextManager contextManager = mockContextManager(database);
-        try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
-            proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("public"));
-            proxyContext.when(() -> ProxyContext.getInstance().getDatabase("public")).thenReturn(database);
-            executor.execute(mock(ConnectionSession.class));
-            assertThat(executor.getQueryResultMetaData().getColumnCount(), is(3));
-            int count = 0;
-            while (executor.getMergedResult().next()) {
-                count++;
-                if ("t_order".equals(executor.getMergedResult().getValue(1, String.class))) {
-                    assertThat(executor.getMergedResult().getValue(2, String.class), is("0000"));
-                    assertThat(executor.getMergedResult().getValue(3, String.class), is("public"));
-                } else {
-                    fail("expected : `t_order`");
-                }
+        when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+        when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("public"));
+        when(ProxyContext.getInstance().getDatabase("public")).thenReturn(database);
+        SelectTableExecutor executor = new SelectTableExecutor(sql);
+        executor.execute(mock(ConnectionSession.class));
+        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(3));
+        int count = 0;
+        while (executor.getMergedResult().next()) {
+            count++;
+            if ("t_order".equals(executor.getMergedResult().getValue(1, String.class))) {
+                assertThat(executor.getMergedResult().getValue(2, String.class), is("0000"));
+                assertThat(executor.getMergedResult().getValue(3, String.class), is("public"));
+            } else {
+                fail("expected : `t_order`");
             }
-            assertThat(count, is(1));
         }
+        assertThat(count, is(1));
     }
     
     private ShardingSphereDatabase createDatabase() throws SQLException {
diff --git a/proxy/frontend/type/opengauss/pom.xml b/proxy/frontend/type/opengauss/pom.xml
index b4173ad661f..2bf816e812a 100644
--- a/proxy/frontend/type/opengauss/pom.xml
+++ b/proxy/frontend/type/opengauss/pom.xml
@@ -38,7 +38,7 @@
             <artifactId>shardingsphere-proxy-frontend-postgresql</artifactId>
             <version>${project.version}</version>
         </dependency>
-
+        
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
             <artifactId>shardingsphere-test-util</artifactId>