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

xiaoyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new 2978338  [ISSUE 2830] Update junit4 to junit5 modify shenyu-web 
shenyu-spi shenyu-protocol shenyu-register-center shenyu-sync-data-center 
module (#2851)
2978338 is described below

commit 2978338f7ec5668ca265ed700f42617fbd69aced
Author: haibo.duan <[email protected]>
AuthorDate: Wed Feb 9 19:26:28 2022 +0800

    [ISSUE 2830] Update junit4 to junit5 modify shenyu-web shenyu-spi 
shenyu-protocol shenyu-register-center shenyu-sync-data-center module (#2851)
    
    * [Task] Update junit4 to junit5  shenyu-web module.
    
    * [Task] Update junit4 to junit5  shenyu-sync-data-center module
    
    * [Task] Update junit4 to junit5  shenyu-spi module
    
    * [Task] Update junit4 to junit5  in shenyu-register-center module.
    
    * [Task] Update junit4 to junit5  in shenyu-protocol module
---
 shenyu-protocol/shenyu-protocol-grpc/pom.xml       |  5 +++
 .../protocol/grpc/message/JsonMessageTest.java     | 17 +++++-----
 .../etcd/EtcdClientRegisterRepositoryTest.java     | 21 ++++++------
 .../register/client/http/RegisterUtilsTest.java    | 30 +++++++++--------
 .../nacos/NacosClientRegisterRepositoryTest.java   | 19 ++++++-----
 .../ZookeeperClientRegisterRepositoryTest.java     | 21 ++++++------
 ...henyuInstanceRegisterRepositoryFactoryTest.java |  8 ++---
 .../etcd/EtcdInstanceRegisterRepositoryTest.java   | 10 +++---
 .../ZookeeperInstanceRegisterRepositoryTest.java   |  6 ++--
 .../consul/ConsulServerRegisterRepositoryTest.java | 11 +++---
 .../etcd/EtcdServerRegisterRepositoryTest.java     |  6 ++--
 .../nacos/NacosServerRegisterRepositoryTest.java   |  6 ++--
 .../ZookeeperServerRegisterRepositoryTest.java     |  6 ++--
 .../org/apache/shenyu/spi/ExtensionLoaderTest.java | 10 +++---
 .../apache/shenyu/spi/SpiExtensionFactoryTest.java |  4 +--
 .../shenyu-sync-data-consul/pom.xml                |  5 +++
 .../data/consul/ConsulSyncDataServiceTest.java     | 19 ++++++-----
 .../sync/data/consul/config/ConsulConfigTest.java  | 10 +++---
 .../consul/handler/ConsulCacheHandlerTest.java     | 25 +++++++-------
 .../shenyu-sync-data-etcd/pom.xml                  |  5 +++
 .../shenyu/sync/data/etcd/EtcdClientTest.java      | 17 ++++++----
 .../sync/data/etcd/EtcdSyncDataServiceTest.java    | 14 ++++----
 .../sync/data/http/config/HttpConfigTest.java      |  6 ++--
 .../data/http/refresh/AppAuthDataRefreshTest.java  |  4 +--
 .../data/http/refresh/MetaDataRefreshTest.java     |  4 +--
 .../data/http/refresh/PluginDataRefreshTest.java   |  4 +--
 .../data/http/refresh/RuleDataRefreshTest.java     |  4 +--
 .../data/http/refresh/SelectorDataRefreshTest.java |  4 +--
 .../sync/data/nacos/NacosSyncDataServiceTest.java  |  6 ++--
 .../sync/data/nacos/config/NacosACMConfigTest.java | 23 ++++++-------
 .../sync/data/nacos/config/NacosConfigTest.java    | 12 +++----
 .../data/nacos/handler/NacosCacheHandlerTest.java  | 39 +++++++++++-----------
 .../shenyu-sync-data-websocket/pom.xml             |  5 +++
 .../client/ShenyuWebsocketClientTest.java          | 12 +++----
 .../data/websocket/config/WebsocketConfigTest.java | 10 +++---
 .../websocket/handler/AuthDataHandlerTest.java     |  5 ++-
 .../websocket/handler/MetaDataHandlerTest.java     |  4 +--
 .../websocket/handler/PluginDataHandlerTest.java   |  4 +--
 .../websocket/handler/RuleDataHandlerTest.java     |  4 +--
 .../websocket/handler/SelectorDataHandlerTest.java |  4 +--
 .../handler/WebsocketDataHandlerTest.java          |  6 ++--
 .../shenyu-sync-data-zookeeper/pom.xml             |  6 ++++
 .../zookeeper/ZookeeperSyncDataServiceTest.java    | 22 ++++++------
 .../web/controller/LocalAppAuthControllerTest.java | 12 +++----
 .../controller/LocalMetadataControllerTest.java    | 12 +++----
 .../web/controller/LocalPluginControllerTest.java  | 12 +++----
 .../apache/shenyu/web/filter/CrossFilterTest.java  |  2 +-
 .../shenyu/web/filter/ExcludeFilterTest.java       | 17 ++++++----
 .../shenyu/web/filter/FallbackFilterTest.java      | 15 +++++----
 .../shenyu/web/filter/FileSizeFilterTest.java      |  6 ++--
 .../ForwardedRemoteAddressResolverTest.java        | 17 +++++-----
 .../shenyu/web/handler/GlobalErrorHandlerTest.java | 26 +++++++--------
 .../shenyu/web/handler/ShenyuWebHandlerTest.java   | 10 +++---
 .../shenyu/web/loader/ShenyuPluginLoaderTest.java  | 39 ++++++++++++----------
 .../web/loader/ShenyuPluginPathBuilderTest.java    | 11 +++---
 .../org/apache/shenyu/web/logo/ShenyuLogoTest.java |  4 +--
 56 files changed, 348 insertions(+), 298 deletions(-)

diff --git a/shenyu-protocol/shenyu-protocol-grpc/pom.xml 
b/shenyu-protocol/shenyu-protocol-grpc/pom.xml
index 6ad33bb..3c58446 100644
--- a/shenyu-protocol/shenyu-protocol-grpc/pom.xml
+++ b/shenyu-protocol/shenyu-protocol-grpc/pom.xml
@@ -46,6 +46,11 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git 
a/shenyu-protocol/shenyu-protocol-grpc/src/test/java/org/apache/shenyu/protocol/grpc/message/JsonMessageTest.java
 
b/shenyu-protocol/shenyu-protocol-grpc/src/test/java/org/apache/shenyu/protocol/grpc/message/JsonMessageTest.java
index 257b77a..b734d9f 100644
--- 
a/shenyu-protocol/shenyu-protocol-grpc/src/test/java/org/apache/shenyu/protocol/grpc/message/JsonMessageTest.java
+++ 
b/shenyu-protocol/shenyu-protocol-grpc/src/test/java/org/apache/shenyu/protocol/grpc/message/JsonMessageTest.java
@@ -22,18 +22,17 @@ import com.google.protobuf.DynamicMessage;
 import io.grpc.MethodDescriptor;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.protocol.grpc.constant.GrpcConstants;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.util.List;
 
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
@@ -41,7 +40,7 @@ import static org.mockito.Mockito.mock;
 /**
  * The Test Case For {@link JsonMessage}.
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public class JsonMessageTest {
 
     @Test
@@ -148,6 +147,6 @@ public class JsonMessageTest {
         MethodDescriptor.Marshaller<DynamicMessage> requestMarshaller = 
echo.getRequestMarshaller();
 
         InputStream actualInputStream = 
requestMarshaller.stream(dynamicMessage);
-        Assert.assertEquals(inputStream, actualInputStream);
+        assertEquals(inputStream, actualInputStream);
     }
 }
diff --git 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-etcd/src/test/java/org/apache/shenyu/register/client/etcd/EtcdClientRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-etcd/src/test/java/org/apache/shenyu/register/client/etcd/EtcdClientRegisterRepositoryTest.java
index aff6d31..b6f6808 100644
--- 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-etcd/src/test/java/org/apache/shenyu/register/client/etcd/EtcdClientRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-etcd/src/test/java/org/apache/shenyu/register/client/etcd/EtcdClientRegisterRepositoryTest.java
@@ -20,14 +20,15 @@ package org.apache.shenyu.register.client.etcd;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.register.common.dto.MetaDataRegisterDTO;
 import org.apache.shenyu.register.common.dto.URIRegisterDTO;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.Map;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.doAnswer;
@@ -41,7 +42,7 @@ public class EtcdClientRegisterRepositoryTest {
 
     private final Map<String, String> etcdBroker = new HashMap<>();
 
-    @Before
+    @BeforeEach
     public void setUp() throws IllegalAccessException, NoSuchFieldException {
         this.repository = new EtcdClientRegisterRepository();
         Class<? extends EtcdClientRegisterRepository> clazz = 
this.repository.getClass();
@@ -83,8 +84,8 @@ public class EtcdClientRegisterRepositoryTest {
 
         repository.persistInterface(data);
         String metadataPath = 
"/shenyu/register/metadata/http/context/context-ruleName";
-        Assert.assertTrue(etcdBroker.containsKey(metadataPath));
-        Assert.assertEquals(etcdBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
+        assertTrue(etcdBroker.containsKey(metadataPath));
+        assertEquals(etcdBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
         repository.close();
     }
     
@@ -98,8 +99,8 @@ public class EtcdClientRegisterRepositoryTest {
                 .build();
         repository.persistURI(data);
         String uriPath = "/shenyu/register/uri/http/context/host:80";
-        Assert.assertTrue(etcdBroker.containsKey(uriPath));
-        Assert.assertEquals(etcdBroker.get(uriPath), 
GsonUtils.getInstance().toJson(data));
+        assertTrue(etcdBroker.containsKey(uriPath));
+        assertEquals(etcdBroker.get(uriPath), 
GsonUtils.getInstance().toJson(data));
     }
 
     @Test
@@ -116,8 +117,8 @@ public class EtcdClientRegisterRepositoryTest {
 
         repository.persistInterface(data);
         String metadataPath = 
"/shenyu/register/metadata/grpc/context/testService.testMethod";
-        Assert.assertTrue(etcdBroker.containsKey(metadataPath));
-        Assert.assertEquals(etcdBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
+        assertTrue(etcdBroker.containsKey(metadataPath));
+        assertEquals(etcdBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
         repository.close();
     }
 }
diff --git 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/src/test/java/org/apache/shenyu/register/client/http/RegisterUtilsTest.java
 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/src/test/java/org/apache/shenyu/register/client/http/RegisterUtilsTest.java
index 60c170a..84eddb8 100644
--- 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/src/test/java/org/apache/shenyu/register/client/http/RegisterUtilsTest.java
+++ 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/src/test/java/org/apache/shenyu/register/client/http/RegisterUtilsTest.java
@@ -18,18 +18,18 @@
 package org.apache.shenyu.register.client.http;
 
 import com.google.gson.Gson;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.shenyu.register.client.http.utils.OkHttpTools;
 import org.apache.shenyu.register.client.http.utils.RegisterUtils;
 import org.apache.shenyu.register.common.enums.RegisterTypeEnum;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.mockito.MockedStatic;
 
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockStatic;
@@ -50,7 +50,7 @@ public final class RegisterUtilsTest {
 
     private String url;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         okHttpTools = mock(OkHttpTools.class);
         Map<String, Object> jsonMap = new HashMap<>();
@@ -88,13 +88,15 @@ public final class RegisterUtilsTest {
         }
     }
 
-    @Test(expected = IOException.class)
+    @Test
     public void testDoRegisterWhenThrowException() throws IOException {
         when(okHttpTools.post(url, json)).thenThrow(IOException.class);
-        try (MockedStatic<OkHttpTools> okHttpToolsMockedStatic = 
mockStatic(OkHttpTools.class)) {
-            
okHttpToolsMockedStatic.when(OkHttpTools::getInstance).thenReturn(okHttpTools);
-            RegisterUtils.doRegister(json, url, 
RegisterTypeEnum.DUBBO.getName());
-            verify(okHttpTools, times(1)).post(eq(url), eq(json));
-        }
+        assertThrows(IOException.class, () -> {
+            try (MockedStatic<OkHttpTools> okHttpToolsMockedStatic = 
mockStatic(OkHttpTools.class)) {
+                
okHttpToolsMockedStatic.when(OkHttpTools::getInstance).thenReturn(okHttpTools);
+                RegisterUtils.doRegister(json, url, 
RegisterTypeEnum.DUBBO.getName());
+                verify(okHttpTools, times(1)).post(eq(url), eq(json));
+            }
+        });
     }
 }
diff --git 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-nacos/src/test/java/org/apache/shenyu/register/client/nacos/NacosClientRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-nacos/src/test/java/org/apache/shenyu/register/client/nacos/NacosClientRegisterRepositoryTest.java
index 3544456..6eed5ae 100644
--- 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-nacos/src/test/java/org/apache/shenyu/register/client/nacos/NacosClientRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-nacos/src/test/java/org/apache/shenyu/register/client/nacos/NacosClientRegisterRepositoryTest.java
@@ -24,15 +24,16 @@ import com.alibaba.nacos.api.naming.pojo.Instance;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.register.common.dto.MetaDataRegisterDTO;
 import org.apache.shenyu.register.common.dto.URIRegisterDTO;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doAnswer;
@@ -53,7 +54,7 @@ public class NacosClientRegisterRepositoryTest {
 
     private NamingService namingService;
 
-    @Before
+    @BeforeEach
     public void setUp() throws IllegalAccessException, NoSuchFieldException, 
NacosException {
         this.repository = new NacosClientRegisterRepository();
         this.configService = mockConfigService();
@@ -117,9 +118,9 @@ public class NacosClientRegisterRepositoryTest {
                 .build();
         repository.persistInterface(data);
         String configPath = "shenyu.register.service.http.context";
-        Assert.assertTrue(nacosBroker.containsKey(configPath));
+        assertTrue(nacosBroker.containsKey(configPath));
         String dataStr = GsonUtils.getInstance().toJson(data);
-        Assert.assertEquals(nacosBroker.get(configPath), 
GsonUtils.getInstance().toJson(Collections.singletonList(dataStr)));
+        assertEquals(nacosBroker.get(configPath), 
GsonUtils.getInstance().toJson(Collections.singletonList(dataStr)));
     }
     
     @Test
@@ -132,10 +133,10 @@ public class NacosClientRegisterRepositoryTest {
                 .build();
         repository.persistURI(data);
         String uriInstancePath = "shenyu.register.service.http";
-        Assert.assertTrue(nacosBroker.containsKey(uriInstancePath));
+        assertTrue(nacosBroker.containsKey(uriInstancePath));
         Instance instance = (Instance) nacosBroker.get(uriInstancePath);
-        Assert.assertEquals(instance.getIp(), data.getHost());
+        assertEquals(instance.getIp(), data.getHost());
         Map<String, String> metadataMap = instance.getMetadata();
-        Assert.assertEquals(metadataMap.get("uriMetadata"), 
GsonUtils.getInstance().toJson(data));
+        assertEquals(metadataMap.get("uriMetadata"), 
GsonUtils.getInstance().toJson(data));
     }
 }
diff --git 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-zookeeper/src/test/java/org/apache/shenyu/register/client/zookeeper/ZookeeperClientRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-zookeeper/src/test/java/org/apache/shenyu/register/client/zookeeper/ZookeeperClientRegisterRepositoryTest.java
index 2a6eb9b..ef30d6e 100644
--- 
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-zookeeper/src/test/java/org/apache/shenyu/register/client/zookeeper/ZookeeperClientRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-zookeeper/src/test/java/org/apache/shenyu/register/client/zookeeper/ZookeeperClientRegisterRepositoryTest.java
@@ -22,9 +22,8 @@ import org.apache.shenyu.common.enums.RpcTypeEnum;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.register.common.dto.MetaDataRegisterDTO;
 import org.apache.shenyu.register.common.dto.URIRegisterDTO;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.util.HashMap;
@@ -32,6 +31,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doAnswer;
@@ -49,7 +50,7 @@ public class ZookeeperClientRegisterRepositoryTest {
 
     private final Set<String> ephemeralNode = new HashSet<>();
 
-    @Before
+    @BeforeEach
     public void setUp() throws NoSuchFieldException, IllegalAccessException {
         this.repository = new ZookeeperClientRegisterRepository();
         Class<? extends ZookeeperClientRegisterRepository> clazz = 
this.repository.getClass();
@@ -112,8 +113,8 @@ public class ZookeeperClientRegisterRepositoryTest {
                 .build();
         repository.persistInterface(data);
         String metadataPath = 
"/shenyu/register/metadata/http/context/context-ruleName";
-        Assert.assertTrue(zookeeperBroker.containsKey(metadataPath));
-        Assert.assertEquals(zookeeperBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
+        assertTrue(zookeeperBroker.containsKey(metadataPath));
+        assertEquals(zookeeperBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
         repository.close();
     }
     
@@ -127,8 +128,8 @@ public class ZookeeperClientRegisterRepositoryTest {
                 .build();
         repository.persistURI(data);
         String uriPath = "/shenyu/register/uri/http/context/host:80";
-        Assert.assertTrue(zookeeperBroker.containsKey(uriPath));
-        Assert.assertEquals(zookeeperBroker.get(uriPath), 
GsonUtils.getInstance().toJson(data));
+        assertTrue(zookeeperBroker.containsKey(uriPath));
+        assertEquals(zookeeperBroker.get(uriPath), 
GsonUtils.getInstance().toJson(data));
         repository.close();
     }
 
@@ -147,8 +148,8 @@ public class ZookeeperClientRegisterRepositoryTest {
                 .build();
         repository.persistInterface(data);
         String metadataPath = 
"/shenyu/register/metadata/grpc/context/testService.testMethod";
-        Assert.assertTrue(zookeeperBroker.containsKey(metadataPath));
-        Assert.assertEquals(zookeeperBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
+        assertTrue(zookeeperBroker.containsKey(metadataPath));
+        assertEquals(zookeeperBroker.get(metadataPath), 
GsonUtils.getInstance().toJson(data));
         repository.close();
     }
 }
diff --git 
a/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-core/src/test/java/org/apache/shenyu/register/instance/core/ShenyuInstanceRegisterRepositoryFactoryTest.java
 
b/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-core/src/test/java/org/apache/shenyu/register/instance/core/ShenyuInstanceRegisterRepositoryFactoryTest.java
index f3db53f..a345b56 100644
--- 
a/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-core/src/test/java/org/apache/shenyu/register/instance/core/ShenyuInstanceRegisterRepositoryFactoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-core/src/test/java/org/apache/shenyu/register/instance/core/ShenyuInstanceRegisterRepositoryFactoryTest.java
@@ -18,18 +18,18 @@
 package org.apache.shenyu.register.instance.core;
 
 import 
org.apache.shenyu.register.instance.api.ShenyuInstanceRegisterRepository;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.util.Map;
 
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.mock;
 
 public final class ShenyuInstanceRegisterRepositoryFactoryTest {
 
-    @Before
+    @BeforeEach
     public void setup() throws Exception {
         final Field field = 
ShenyuInstanceRegisterRepositoryFactory.class.getDeclaredField("REPOSITORY_MAP");
         field.setAccessible(true);
diff --git 
a/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-etcd/src/test/java/org/apache/shenyu/register/instance/etcd/EtcdInstanceRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-etcd/src/test/java/org/apache/shenyu/register/instance/etcd/EtcdInstanceRegisterRepositoryTest.java
index c0e8394..e5250ef 100644
--- 
a/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-etcd/src/test/java/org/apache/shenyu/register/instance/etcd/EtcdInstanceRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-etcd/src/test/java/org/apache/shenyu/register/instance/etcd/EtcdInstanceRegisterRepositoryTest.java
@@ -19,15 +19,15 @@ package org.apache.shenyu.register.instance.etcd;
 
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.register.common.dto.InstanceRegisterDTO;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.Map;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
@@ -38,7 +38,7 @@ public final class EtcdInstanceRegisterRepositoryTest {
 
     private final Map<String, String> etcdBroker = new HashMap<>();
 
-    @Before
+    @BeforeEach
     public void setUp() throws NoSuchFieldException, IllegalAccessException {
         this.repository = new EtcdInstanceRegisterRepository();
         Class<? extends EtcdInstanceRegisterRepository> clazz = 
this.repository.getClass();
diff --git 
a/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-zookeeper/src/test/java/org/apache/shenyu/register/instance/zookeeper/ZookeeperInstanceRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-zookeeper/src/test/java/org/apache/shenyu/register/instance/zookeeper/ZookeeperInstanceRegisterRepositoryTest.java
index 01844ba..5294d97 100644
--- 
a/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-zookeeper/src/test/java/org/apache/shenyu/register/instance/zookeeper/ZookeeperInstanceRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-instance/shenyu-register-instance-zookeeper/src/test/java/org/apache/shenyu/register/instance/zookeeper/ZookeeperInstanceRegisterRepositoryTest.java
@@ -19,8 +19,8 @@ package org.apache.shenyu.register.instance.zookeeper;
 
 import org.I0Itec.zkclient.ZkClient;
 import org.apache.shenyu.register.common.dto.InstanceRegisterDTO;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
@@ -45,7 +45,7 @@ public class ZookeeperInstanceRegisterRepositoryTest {
     private final ZookeeperInstanceRegisterRepository repository
             = new ZookeeperInstanceRegisterRepository();
 
-    @Before
+    @BeforeEach
     public void setup() throws Exception {
         final ZkClient zkClient = mockZkClient();
         final Field field = repository.getClass().getDeclaredField("zkClient");
diff --git 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-consul/src/test/java/org/apache/shenyu/register/server/consul/ConsulServerRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-consul/src/test/java/org/apache/shenyu/register/server/consul/ConsulServerRegisterRepositoryTest.java
index 44342ff..2d7adec 100644
--- 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-consul/src/test/java/org/apache/shenyu/register/server/consul/ConsulServerRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-consul/src/test/java/org/apache/shenyu/register/server/consul/ConsulServerRegisterRepositoryTest.java
@@ -28,10 +28,12 @@ import 
org.apache.shenyu.register.common.dto.MetaDataRegisterDTO;
 import org.apache.shenyu.register.common.dto.URIRegisterDTO;
 import org.apache.shenyu.register.common.enums.EventType;
 import org.apache.shenyu.register.server.api.ShenyuServerRegisterPublisher;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 import org.springframework.boot.test.context.runner.ApplicationContextRunner;
 import org.springframework.context.annotation.Bean;
 
@@ -48,7 +50,8 @@ import static org.mockito.Mockito.mock;
 /**
  * The TestCase for {@link ConsulServerRegisterRepository}.
  */
-@RunWith(MockitoJUnitRunner.Silent.class)
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public class ConsulServerRegisterRepositoryTest {
 
     private ShenyuServerRegisterPublisher mockPublish() {
diff --git 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-etcd/src/test/java/org/apache/shenyu/register/server/etcd/EtcdServerRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-etcd/src/test/java/org/apache/shenyu/register/server/etcd/EtcdServerRegisterRepositoryTest.java
index 966f107..8fcfde0 100644
--- 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-etcd/src/test/java/org/apache/shenyu/register/server/etcd/EtcdServerRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-etcd/src/test/java/org/apache/shenyu/register/server/etcd/EtcdServerRegisterRepositoryTest.java
@@ -22,8 +22,8 @@ import 
org.apache.shenyu.register.common.dto.MetaDataRegisterDTO;
 import org.apache.shenyu.register.server.api.ShenyuServerRegisterPublisher;
 import org.apache.shenyu.register.server.etcd.client.EtcdClient;
 import org.apache.shenyu.register.server.etcd.client.EtcdListenHandler;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
@@ -50,7 +50,7 @@ public class EtcdServerRegisterRepositoryTest {
 
     private EtcdListenHandler watchHandler;
 
-    @Before
+    @BeforeEach
     public void setUp() throws NoSuchFieldException, IllegalAccessException {
         this.publisher = mockPublish();
         this.repository = new EtcdServerRegisterRepository();
diff --git 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-nacos/src/test/java/org/apache/shenyu/register/server/nacos/NacosServerRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-nacos/src/test/java/org/apache/shenyu/register/server/nacos/NacosServerRegisterRepositoryTest.java
index d814b7d..beecef9 100644
--- 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-nacos/src/test/java/org/apache/shenyu/register/server/nacos/NacosServerRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-nacos/src/test/java/org/apache/shenyu/register/server/nacos/NacosServerRegisterRepositoryTest.java
@@ -29,8 +29,8 @@ import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.register.common.dto.MetaDataRegisterDTO;
 import org.apache.shenyu.register.common.dto.URIRegisterDTO;
 import org.apache.shenyu.register.server.api.ShenyuServerRegisterPublisher;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
@@ -64,7 +64,7 @@ public class NacosServerRegisterRepositoryTest {
 
     private EventListener eventListener;
 
-    @Before
+    @BeforeEach
     public void setUp() throws NoSuchFieldException, IllegalAccessException, 
NacosException {
         this.publisher = mockPublish();
         this.repository = new NacosServerRegisterRepository();
diff --git 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-zookeeper/src/test/java/org/apache/shenyu/register/server/zookeeper/ZookeeperServerRegisterRepositoryTest.java
 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-zookeeper/src/test/java/org/apache/shenyu/register/server/zookeeper/ZookeeperServerRegisterRepositoryTest.java
index 2c9a253..b5d682f 100644
--- 
a/shenyu-register-center/shenyu-register-server/shenyu-register-server-zookeeper/src/test/java/org/apache/shenyu/register/server/zookeeper/ZookeeperServerRegisterRepositoryTest.java
+++ 
b/shenyu-register-center/shenyu-register-server/shenyu-register-server-zookeeper/src/test/java/org/apache/shenyu/register/server/zookeeper/ZookeeperServerRegisterRepositoryTest.java
@@ -23,8 +23,8 @@ import org.I0Itec.zkclient.ZkClient;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.register.common.dto.MetaDataRegisterDTO;
 import org.apache.shenyu.register.server.api.ShenyuServerRegisterPublisher;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
@@ -54,7 +54,7 @@ public class ZookeeperServerRegisterRepositoryTest {
 
     private IZkDataListener zkDataListener;
 
-    @Before
+    @BeforeEach
     public void setUp() throws NoSuchFieldException, IllegalAccessException {
         this.publisher = mockPublish();
         this.repository = new ZookeeperServerRegisterRepository();
diff --git 
a/shenyu-spi/src/test/java/org/apache/shenyu/spi/ExtensionLoaderTest.java 
b/shenyu-spi/src/test/java/org/apache/shenyu/spi/ExtensionLoaderTest.java
index 87c9e1c..3d7b618 100644
--- a/shenyu-spi/src/test/java/org/apache/shenyu/spi/ExtensionLoaderTest.java
+++ b/shenyu-spi/src/test/java/org/apache/shenyu/spi/ExtensionLoaderTest.java
@@ -29,7 +29,7 @@ import org.apache.shenyu.spi.fixture.NoJoinSPI;
 import org.apache.shenyu.spi.fixture.NopSPI;
 import org.apache.shenyu.spi.fixture.NotMatchSPI;
 import org.apache.shenyu.spi.fixture.SubHasDefaultSPI;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -41,10 +41,10 @@ import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * The type Extension loader test.
diff --git 
a/shenyu-spi/src/test/java/org/apache/shenyu/spi/SpiExtensionFactoryTest.java 
b/shenyu-spi/src/test/java/org/apache/shenyu/spi/SpiExtensionFactoryTest.java
index e3d0291..259a23c 100644
--- 
a/shenyu-spi/src/test/java/org/apache/shenyu/spi/SpiExtensionFactoryTest.java
+++ 
b/shenyu-spi/src/test/java/org/apache/shenyu/spi/SpiExtensionFactoryTest.java
@@ -18,9 +18,9 @@
 package org.apache.shenyu.spi;
 
 import org.apache.shenyu.spi.fixture.MysqlSPI;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 public final class SpiExtensionFactoryTest {
 
diff --git a/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml 
b/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml
index 65fbe25..4c0774e 100644
--- a/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml
+++ b/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml
@@ -42,6 +42,11 @@
             <artifactId>consul-api</artifactId>
             <version>${consul.api.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-junit-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
index 1c33b69..f9e1d4c 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
@@ -23,12 +23,14 @@ import com.ecwid.consul.v1.Response;
 import com.ecwid.consul.v1.kv.model.GetValue;
 import org.apache.shenyu.common.constant.ConsulConstants;
 import org.apache.shenyu.sync.data.consul.config.ConsulConfig;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.AfterEach;
+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.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -44,7 +46,8 @@ import static org.mockito.Mockito.when;
 /**
  * test case for {@link ConsulSyncDataService}.
  */
-@RunWith(MockitoJUnitRunner.Silent.class)
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public final class ConsulSyncDataServiceTest {
 
     private static final int WAIT_TIME = 1000;
@@ -67,7 +70,7 @@ public final class ConsulSyncDataServiceTest {
     @Mock
     private Response response;
 
-    @Before
+    @BeforeEach
     public void setup() {
         when(consulConfig.getWaitTime()).thenReturn(WAIT_TIME);
         when(consulConfig.getWatchDelay()).thenReturn(WATCH_DELAY);
@@ -94,7 +97,7 @@ public final class ConsulSyncDataServiceTest {
         verify(response, atLeast(3)).getValue();
     }
 
-    @After
+    @AfterEach
     public void testStop() {
         consulSyncDataService.close();
     }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/config/ConsulConfigTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/config/ConsulConfigTest.java
index 1d6f11f..0b0c59c 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/config/ConsulConfigTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/config/ConsulConfigTest.java
@@ -17,13 +17,13 @@
 
 package org.apache.shenyu.sync.data.consul.config;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.util.Objects;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
 
 /**
  * add test case for {@link ConsulConfig}.
@@ -40,7 +40,7 @@ public class ConsulConfigTest {
 
     private ConsulConfig that;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         consulConfig = new ConsulConfig();
         consulConfig.setUrl(URL);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
index cf3af03..21d01c3 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
@@ -29,13 +29,14 @@ import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 /**
  * test case for {@link ConsulCacheHandler}.
  */
@@ -66,8 +67,8 @@ public final class ConsulCacheHandlerTest {
             }
         }, Collections.emptyList(), Collections.emptyList());
         consulCacheHandler.updatePluginData(pluginData);
-        Assert.assertEquals(2, onSubscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
+        assertEquals(2, onSubscribeList.size());
+        assertEquals(2, unsubscribeList.size());
     }
 
     @Test
@@ -104,8 +105,8 @@ public final class ConsulCacheHandlerTest {
             }
         }, Collections.emptyList(), Collections.emptyList());
         consulCacheHandler.updateSelectorMap(selectorDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
     }
 
     @Test
@@ -137,8 +138,8 @@ public final class ConsulCacheHandlerTest {
             }
         }, Collections.emptyList(), Collections.emptyList());
         consulCacheHandler.updateRuleMap(ruleDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
     }
 
     @Test
@@ -166,8 +167,8 @@ public final class ConsulCacheHandlerTest {
         ConsulCacheHandler consulCacheHandler = new ConsulCacheHandler(null, 
Lists.newArrayList(metaDataSubscriber),
                 Collections.emptyList());
         consulCacheHandler.updateMetaDataMap(metaDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
     }
 
     @Test
@@ -200,7 +201,7 @@ public final class ConsulCacheHandlerTest {
                 Collections.emptyList(), 
Lists.newArrayList(authDataSubscriber));
 
         consulCacheHandler.updateAuthMap(appAuthDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
     }
 }
diff --git a/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml
index fe29c4d..442e658 100644
--- a/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml
+++ b/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml
@@ -36,6 +36,11 @@
             <artifactId>jetcd-core</artifactId>
             <version>0.5.0</version>
         </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-junit-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdClientTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdClientTest.java
index 6c5f8e4..e24c8f5 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdClientTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdClientTest.java
@@ -26,12 +26,14 @@ import io.etcd.jetcd.Watch;
 import io.etcd.jetcd.kv.GetResponse;
 import io.etcd.jetcd.options.WatchOption;
 import org.apache.shenyu.common.exception.ShenyuException;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -39,7 +41,7 @@ import java.util.concurrent.CompletableFuture;
 import java.util.function.BiConsumer;
 import java.util.function.Consumer;
 
-import static junit.framework.TestCase.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
@@ -48,7 +50,8 @@ import static org.mockito.Mockito.when;
 /**
  * test case for {@link EtcdClient}.
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public class EtcdClientTest {
 
     private static final String KEY1 = "/foo/key1";
@@ -80,7 +83,7 @@ public class EtcdClientTest {
     @Mock
     private Watch.Watcher watcher;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         KV kv = mock(KV.class);
         final CompletableFuture<GetResponse> future = 
mock(CompletableFuture.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataServiceTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataServiceTest.java
index 097ca83..68aff9a 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataServiceTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataServiceTest.java
@@ -29,12 +29,12 @@ import org.apache.shenyu.common.dto.PluginData;
 import org.apache.shenyu.common.exception.ShenyuException;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -42,7 +42,7 @@ import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
 import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -50,7 +50,7 @@ import static org.mockito.Mockito.when;
 /**
  * test case for {@link EtcdSyncDataService}.
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public class EtcdSyncDataServiceTest {
     
     private static final String MOCK_PLUGIN_PATH = "/shenyu/plugin/divide";
@@ -68,7 +68,7 @@ public class EtcdSyncDataServiceTest {
     @Mock
     private Watch.Watcher watcher;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         PluginData pluginData = 
PluginData.builder().name(MOCK_PLUGIN_NAME).enabled(Boolean.FALSE).build();
         KV kv = mock(KV.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/config/HttpConfigTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/config/HttpConfigTest.java
index 2b12fe8..e3ee639 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/config/HttpConfigTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/config/HttpConfigTest.java
@@ -17,8 +17,8 @@
 
 package org.apache.shenyu.sync.data.http.config;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.BeforeEach;
 
 import java.util.Objects;
 
@@ -40,7 +40,7 @@ public class HttpConfigTest {
 
     private HttpConfig that;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         httpConfig = new HttpConfig();
         httpConfig.setUrl(URL);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefreshTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefreshTest.java
index 3fd8231..a44ec08 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefreshTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefreshTest.java
@@ -23,14 +23,14 @@ import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 
 public final class AppAuthDataRefreshTest {
 
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefreshTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefreshTest.java
index af0fcc0..5ad1f7f 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefreshTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefreshTest.java
@@ -23,14 +23,14 @@ import org.apache.shenyu.common.dto.MetaData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 
 public final class MetaDataRefreshTest {
 
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefreshTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefreshTest.java
index 560e9d8..3db0709 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefreshTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefreshTest.java
@@ -23,10 +23,10 @@ import org.apache.shenyu.common.dto.PluginData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefreshTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefreshTest.java
index b3fce1c..29f0729 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefreshTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefreshTest.java
@@ -24,14 +24,14 @@ import org.apache.shenyu.common.dto.RuleData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 
 public final class RuleDataRefreshTest {
 
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefreshTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefreshTest.java
index 75040cb..854a4a7 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefreshTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefreshTest.java
@@ -24,10 +24,10 @@ import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/NacosSyncDataServiceTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/NacosSyncDataServiceTest.java
index 7fd28f5..4e1e9c7 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/NacosSyncDataServiceTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/NacosSyncDataServiceTest.java
@@ -19,8 +19,8 @@ package org.apache.shenyu.sync.data.nacos;
 
 import com.alibaba.nacos.api.config.ConfigService;
 import org.apache.shenyu.sync.data.nacos.handler.NacosMockConfigService;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 
@@ -31,7 +31,7 @@ public final class NacosSyncDataServiceTest {
 
     private NacosSyncDataService nacosSyncDataService;
 
-    @Before
+    @BeforeEach
     public void setup() {
         ConfigService configService = new NacosMockConfigService();
         nacosSyncDataService = new NacosSyncDataService(configService, null,
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfigTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfigTest.java
index 77db415..2c18473 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfigTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfigTest.java
@@ -17,15 +17,14 @@
 
 package org.apache.shenyu.sync.data.nacos.config;
 
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.util.Objects;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * add test case for {@link NacosACMConfig}.
@@ -46,7 +45,7 @@ public final class NacosACMConfigTest {
 
     private NacosACMConfig that;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         nacosACMConfig = new NacosACMConfig();
         nacosACMConfig.setAccessKey(ACCESS_KEY);
@@ -70,11 +69,11 @@ public final class NacosACMConfigTest {
         nacosACMConfig.setEndpoint(ENDPOINT);
         nacosACMConfig.setNamespace(NAMESPACE);
         nacosACMConfig.setSecretKey(SECRE_KEY);
-        Assert.assertEquals(ACCESS_KEY, nacosACMConfig.getAccessKey());
-        Assert.assertEquals(ENABLE, nacosACMConfig.isEnabled());
-        Assert.assertEquals(ENDPOINT, nacosACMConfig.getEndpoint());
-        Assert.assertEquals(NAMESPACE, nacosACMConfig.getNamespace());
-        Assert.assertEquals(SECRE_KEY, nacosACMConfig.getSecretKey());
+        assertEquals(ACCESS_KEY, nacosACMConfig.getAccessKey());
+        assertEquals(ENABLE, nacosACMConfig.isEnabled());
+        assertEquals(ENDPOINT, nacosACMConfig.getEndpoint());
+        assertEquals(NAMESPACE, nacosACMConfig.getNamespace());
+        assertEquals(SECRE_KEY, nacosACMConfig.getSecretKey());
     }
 
     @Test
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosConfigTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosConfigTest.java
index 96ad251..b6857c0 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosConfigTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/config/NacosConfigTest.java
@@ -17,14 +17,14 @@
 
 package org.apache.shenyu.sync.data.nacos.config;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.util.Objects;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * add test case for {@link NacosConfig}.
@@ -45,7 +45,7 @@ public final class NacosConfigTest {
 
     private NacosConfig that;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         nacosConfig = new NacosConfig();
         nacosConfig.setUrl(URL);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
index bdc9a92..77e5e60 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
@@ -34,9 +34,8 @@ import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -50,6 +49,8 @@ import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.CountDownLatch;
 import java.util.stream.Collectors;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 /**
  * add test case for {@link NacosCacheHandler}.
  */
@@ -85,7 +86,7 @@ public final class NacosCacheHandlerTest {
 
     private ConfigService configService;
 
-    @Before
+    @BeforeEach
     public void setup() {
         configService = new NacosMockConfigService();
     }
@@ -120,9 +121,9 @@ public final class NacosCacheHandlerTest {
             }
         }, Collections.emptyList(), Collections.emptyList());
         nacosCacheHandlerService.updatePluginMap(pluginData);
-        Assert.assertEquals(2, onSubscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
-        Assert.assertEquals(
+        assertEquals(2, onSubscribeList.size());
+        assertEquals(2, unsubscribeList.size());
+        assertEquals(
                 configService.getConfig(PLUGIN_DATA_ID, GROUP, 1),
                 GsonUtils.getInstance()
                         .toJson(ImmutableMap.of(pluginName2, pluginData2, 
pluginName1, pluginData1)));
@@ -167,9 +168,9 @@ public final class NacosCacheHandlerTest {
             }
         }, Collections.emptyList(), Collections.emptyList());
         nacosCacheHandlerService.updateSelectorMap(selectorDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
-        Assert.assertEquals(
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
+        assertEquals(
                 configService.getConfig(SELECTOR_DATA_ID, GROUP, 1),
                 GsonUtils.getInstance()
                         .toJson(
@@ -213,9 +214,9 @@ public final class NacosCacheHandlerTest {
             }
         }, Collections.emptyList(), Collections.emptyList());
         nacosCacheHandlerService.updateRuleMap(ruleDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
-        Assert.assertEquals(
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
+        assertEquals(
                 configService.getConfig(RULE_DATA_ID, GROUP, 1),
                 GsonUtils.getInstance()
                         .toJson(
@@ -255,9 +256,9 @@ public final class NacosCacheHandlerTest {
         nacosCacheHandlerService = new NacosCacheHandler(configService, null, 
Lists.newArrayList(metaDataSubscriber),
                 Collections.emptyList());
         nacosCacheHandlerService.updateMetaDataMap(metaDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
-        Assert.assertEquals(
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
+        assertEquals(
                 configService.getConfig(META_DATA_ID, GROUP, 1),
                 GsonUtils.getInstance()
                         .toJson(ImmutableMap.of(metadataPath1, metaData1, 
metadataPath2, metaData2)));
@@ -297,9 +298,9 @@ public final class NacosCacheHandlerTest {
                 Collections.emptyList(), 
Lists.newArrayList(authDataSubscriber));
 
         nacosCacheHandlerService.updateAuthMap(appAuthDataParam);
-        Assert.assertEquals(2, subscribeList.size());
-        Assert.assertEquals(2, unsubscribeList.size());
-        Assert.assertEquals(
+        assertEquals(2, subscribeList.size());
+        assertEquals(2, unsubscribeList.size());
+        assertEquals(
                 configService.getConfig(AUTH_DATA_ID, GROUP, 100),
                 GsonUtils.getInstance()
                         .toJson(ImmutableMap.of(mockAppKey2, appAuthData2, 
mockAppKey, appAuthData)));
diff --git a/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml
index 6c6b9fd..0258c15 100644
--- a/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml
+++ b/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml
@@ -49,5 +49,10 @@
             <version>${undertow.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-junit-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClientTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClientTest.java
index a4e53ba..96a778f 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClientTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClientTest.java
@@ -27,12 +27,12 @@ import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.java_websocket.handshake.ServerHandshake;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import java.net.URI;
 import java.util.ArrayList;
@@ -48,7 +48,7 @@ import static org.mockito.Mockito.verify;
 /**
  * add test case for {@link ShenyuWebsocketClient}.
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public class ShenyuWebsocketClientTest {
     
     @InjectMocks
@@ -71,7 +71,7 @@ public class ShenyuWebsocketClientTest {
     
     private WebsocketData<PluginData> websocketData;
     
-    @Before
+    @BeforeEach
     public void setUp() {
         websocketData = new WebsocketData();
         websocketData.setEventType(DataEventTypeEnum.MYSELF.name());
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfigTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfigTest.java
index cd84a36..89b1baf 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfigTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfigTest.java
@@ -17,13 +17,13 @@
 
 package org.apache.shenyu.plugin.sync.data.websocket.config;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.util.Objects;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
 
 /**
  * add test case for {@link WebsocketConfig}.
@@ -34,7 +34,7 @@ public class WebsocketConfigTest {
 
     private WebsocketConfig websocketConfig;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         websocketConfig = new WebsocketConfig();
         websocketConfig.setUrls(URLS);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandlerTest.java
index e206fbc..2ce8fee 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandlerTest.java
@@ -22,17 +22,16 @@ import org.apache.shenyu.common.dto.AppAuthData;
 import org.apache.shenyu.common.dto.AuthParamData;
 import org.apache.shenyu.common.dto.AuthPathData;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
-import static org.junit.Assert.assertThat;
 
 public final class AuthDataHandlerTest {
 
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandlerTest.java
index 0aee4bb..8cfefa3 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandlerTest.java
@@ -20,12 +20,12 @@ package 
org.apache.shenyu.plugin.sync.data.websocket.handler;
 import com.google.gson.Gson;
 import org.apache.shenyu.common.dto.MetaData;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandlerTest.java
index 0a7b111..f824648 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandlerTest.java
@@ -20,12 +20,12 @@ package 
org.apache.shenyu.plugin.sync.data.websocket.handler;
 import com.google.gson.Gson;
 import org.apache.shenyu.common.dto.PluginData;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.LinkedList;
 import java.util.List;
 
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandlerTest.java
index 80b794d..cf28d5f 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandlerTest.java
@@ -21,13 +21,13 @@ import com.google.gson.Gson;
 import org.apache.shenyu.common.dto.ConditionData;
 import org.apache.shenyu.common.dto.RuleData;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandlerTest.java
index 8c582d6..d339993 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandlerTest.java
@@ -21,13 +21,13 @@ import com.google.gson.Gson;
 import org.apache.shenyu.common.dto.ConditionData;
 import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
-import static org.junit.Assert.assertThat;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/WebsocketDataHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/WebsocketDataHandlerTest.java
index 2bf4254..807f1a4 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/WebsocketDataHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/handler/WebsocketDataHandlerTest.java
@@ -30,8 +30,8 @@ import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 
 public final class WebsocketDataHandlerTest {
@@ -40,7 +40,7 @@ public final class WebsocketDataHandlerTest {
 
     private WebsocketDataHandler websocketDataHandler;
 
-    @Before
+    @BeforeEach
     public void testWebsocketDataHandler() {
         pluginDataSubscriber = mock(PluginDataSubscriber.class);
         List<AuthDataSubscriber> authDataSubscribers = new LinkedList<>();
diff --git a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml 
b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml
index 70521a3..08cb764 100644
--- a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml
+++ b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml
@@ -52,5 +52,11 @@
             <version>${curator-test.version}</version>
             <scope>test</scope>
         </dependency>
+
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-junit-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/test/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataServiceTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/test/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataServiceTest.java
index 36e69ef..fbfc4a2 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/test/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataServiceTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/test/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataServiceTest.java
@@ -30,28 +30,28 @@ import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.ArgumentCaptor;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertTrue;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public final class ZookeeperSyncDataServiceTest {
 
     private static final String MOCK_PLUGIN_PARENT_PATH = "/shenyu/plugin";
@@ -88,7 +88,7 @@ public final class ZookeeperSyncDataServiceTest {
 
     private ZookeeperSyncDataService syncDataService;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         zkClient = mock(ZkClient.class);
         //mock plugin data & method
@@ -349,7 +349,7 @@ public final class ZookeeperSyncDataServiceTest {
         };
         syncDataService = new ZookeeperSyncDataService(zkClient,
                 null, Lists.newArrayList(metaDataSubscriber), 
Collections.emptyList());
-        Assert.assertEquals(1, subscribeList.size());
+        assertEquals(1, subscribeList.size());
         ArgumentCaptor<IZkDataListener> captor = 
ArgumentCaptor.forClass(IZkDataListener.class);
         verify(zkClient).subscribeDataChanges(eq(MOCK_META_DATA_PATH), 
captor.capture());
         captor.getValue().handleDataChange(MOCK_META_DATA_PATH, 
GsonUtils.getInstance().toJson(changedMetaData));
@@ -379,7 +379,7 @@ public final class ZookeeperSyncDataServiceTest {
         assertThat(unSubscribeList.get(0).getPath(), is(MOCK_META_DATA_ID));
     }
 
-    @After
+    @AfterEach
     public void tearDown() {
         syncDataService.close();
     }
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalAppAuthControllerTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalAppAuthControllerTest.java
index 6d070ab..a0744f2 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalAppAuthControllerTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalAppAuthControllerTest.java
@@ -22,10 +22,10 @@ import org.apache.shenyu.common.dto.AuthParamData;
 import org.apache.shenyu.common.dto.AuthPathData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.mock.web.MockHttpServletResponse;
@@ -44,7 +44,7 @@ import static org.mockito.Mockito.verify;
 /**
  * Test cases for LocalAppAuthController.
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public final class LocalAppAuthControllerTest {
 
     private MockMvc mockMvc;
@@ -53,7 +53,7 @@ public final class LocalAppAuthControllerTest {
     
     private List<AuthDataSubscriber> subscribers;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         subscribers = new LinkedList<>();
         subscribers.add(mock(AuthDataSubscriber.class));
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalMetadataControllerTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalMetadataControllerTest.java
index 882a734..14e3913 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalMetadataControllerTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalMetadataControllerTest.java
@@ -20,10 +20,10 @@ package org.apache.shenyu.web.controller;
 import org.apache.shenyu.common.dto.MetaData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.mock.web.MockHttpServletResponse;
@@ -41,7 +41,7 @@ import static org.mockito.Mockito.verify;
 /**
  * Test cases for {@link LocalMetadataController}.
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public final class LocalMetadataControllerTest {
 
     private MockMvc mockMvc;
@@ -50,7 +50,7 @@ public final class LocalMetadataControllerTest {
 
     private List<MetaDataSubscriber> subscribers;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         subscribers = new LinkedList<>();
         subscribers.add(mock(MetaDataSubscriber.class));
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalPluginControllerTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalPluginControllerTest.java
index 72507d7..5945dc8 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalPluginControllerTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/controller/LocalPluginControllerTest.java
@@ -36,10 +36,10 @@ import 
org.apache.shenyu.plugin.base.cache.CommonPluginDataSubscriber;
 import org.apache.shenyu.plugin.base.handler.PluginDataHandler;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.apache.shenyu.web.controller.LocalPluginController.SelectorRuleData;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.mock.web.MockHttpServletResponse;
@@ -60,7 +60,7 @@ import static 
org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 /**
  * The type Plugin controller Test.
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public final class LocalPluginControllerTest {
 
     private PluginDataSubscriber subscriber;
@@ -69,7 +69,7 @@ public final class LocalPluginControllerTest {
 
     private BaseDataCache baseDataCache;
 
-    @Before
+    @BeforeEach
     public void setup() {
         ArrayList<PluginDataHandler> pluginDataHandlerList = 
Lists.newArrayList();
         subscriber = new CommonPluginDataSubscriber(pluginDataHandlerList);
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/CrossFilterTest.java 
b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/CrossFilterTest.java
index 215d8ab..7d834df 100644
--- a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/CrossFilterTest.java
+++ b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/CrossFilterTest.java
@@ -18,7 +18,7 @@
 package org.apache.shenyu.web.filter;
 
 import org.apache.shenyu.common.config.ShenyuConfig.CrossFilterConfig;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
 import org.springframework.mock.web.server.MockServerWebExchange;
 import org.springframework.web.server.ServerWebExchange;
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/ExcludeFilterTest.java 
b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/ExcludeFilterTest.java
index 6316451..564430b 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/ExcludeFilterTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/ExcludeFilterTest.java
@@ -17,10 +17,12 @@
 
 package org.apache.shenyu.web.filter;
 
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
 import org.springframework.mock.web.server.MockServerWebExchange;
 import org.springframework.web.server.ServerWebExchange;
@@ -35,14 +37,15 @@ import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-@RunWith(MockitoJUnitRunner.Silent.class)
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public final class ExcludeFilterTest {
-    
+
     private ExcludeFilter excludeFilter;
 
     private WebFilterChain webFilterChain;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         List<String> paths = new ArrayList<>();
         paths.add("/favicon.ico");
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FallbackFilterTest.java 
b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FallbackFilterTest.java
index 0d3707f..f642493 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FallbackFilterTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FallbackFilterTest.java
@@ -19,10 +19,12 @@ package org.apache.shenyu.web.filter;
 
 import org.apache.shenyu.plugin.api.result.ShenyuResult;
 import org.apache.shenyu.plugin.api.utils.SpringBeanUtils;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
 import org.springframework.mock.web.server.MockServerWebExchange;
@@ -38,14 +40,15 @@ import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-@RunWith(MockitoJUnitRunner.Silent.class)
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 public final class FallbackFilterTest {
     
     private FallbackFilter fallbackFilter;
 
     private WebFilterChain webFilterChain;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         ConfigurableApplicationContext context = 
mock(ConfigurableApplicationContext.class);
         SpringBeanUtils.getInstance().setApplicationContext(context);
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FileSizeFilterTest.java 
b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FileSizeFilterTest.java
index 24cf86a..c32320d 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FileSizeFilterTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/filter/FileSizeFilterTest.java
@@ -19,8 +19,8 @@ package org.apache.shenyu.web.filter;
 
 import org.apache.shenyu.plugin.api.result.ShenyuResult;
 import org.apache.shenyu.plugin.api.utils.SpringBeanUtils;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.http.MediaType;
 import org.springframework.http.server.reactive.ServerHttpRequest;
@@ -42,7 +42,7 @@ import static 
org.springframework.http.MediaType.MULTIPART_FORM_DATA;
  */
 public final class FileSizeFilterTest {
 
-    @Before
+    @BeforeEach
     public void setup() {
         GenericApplicationContext context = new GenericApplicationContext();
         SpringBeanUtils.getInstance().setApplicationContext(context);
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolverTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolverTest.java
index 94b4518..27077d8 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolverTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/forward/ForwardedRemoteAddressResolverTest.java
@@ -17,20 +17,21 @@
 
 package org.apache.shenyu.web.forward;
 
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
 import org.springframework.mock.web.server.MockServerWebExchange;
 import org.springframework.test.util.ReflectionTestUtils;
 import org.springframework.web.server.ServerWebExchange;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 /**
  * Test cases for ForwardedRemoteAddressResolver.
  *
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public final class ForwardedRemoteAddressResolverTest {
 
     @Test
@@ -38,16 +39,16 @@ public final class ForwardedRemoteAddressResolverTest {
         try {
             ForwardedRemoteAddressResolver.maxTrustedIndex(0);
         } catch (Exception e) {
-            Assert.assertEquals(e.getMessage(), "An index greater than 0 is 
required");
+            assertEquals(e.getMessage(), "An index greater than 0 is 
required");
         }
 
         ForwardedRemoteAddressResolver instance = 
ForwardedRemoteAddressResolver.maxTrustedIndex(5);
         int maxTrustedIndex = (int) ReflectionTestUtils.getField(instance, 
"maxTrustedIndex");
-        Assert.assertEquals(maxTrustedIndex, 5);
+        assertEquals(maxTrustedIndex, 5);
 
         ForwardedRemoteAddressResolver all = 
ForwardedRemoteAddressResolver.trustAll();
         maxTrustedIndex = (int) ReflectionTestUtils.getField(all, 
"maxTrustedIndex");
-        Assert.assertEquals(maxTrustedIndex, Integer.MAX_VALUE);
+        assertEquals(maxTrustedIndex, Integer.MAX_VALUE);
     }
 
     @Test
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/handler/GlobalErrorHandlerTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/handler/GlobalErrorHandlerTest.java
index cebf5fa..80f44c2 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/handler/GlobalErrorHandlerTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/handler/GlobalErrorHandlerTest.java
@@ -20,13 +20,13 @@ package org.apache.shenyu.web.handler;
 import org.apache.shenyu.plugin.api.result.DefaultShenyuResult;
 import org.apache.shenyu.plugin.api.result.ShenyuResult;
 import org.apache.shenyu.plugin.api.utils.SpringBeanUtils;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.MockedStatic;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.ConfigurableApplicationContext;
@@ -35,7 +35,7 @@ import 
org.springframework.mock.web.server.MockServerWebExchange;
 import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
 
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
@@ -45,9 +45,8 @@ import static org.mockito.Mockito.when;
 
 /**
  * test for GlobalErrorHandler.
- *
  */
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public final class GlobalErrorHandlerTest {
 
     private static Logger loggerSpy;
@@ -56,7 +55,7 @@ public final class GlobalErrorHandlerTest {
 
     private GlobalErrorHandler globalErrorHandler;
 
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass() {
         loggerSpy = spy(LoggerFactory.getLogger(GlobalErrorHandler.class));
         loggerFactoryMockedStatic = mockStatic(LoggerFactory.class);
@@ -64,16 +63,17 @@ public final class GlobalErrorHandlerTest {
         loggerFactoryMockedStatic.when(() -> 
LoggerFactory.getLogger(anyString())).thenReturn(loggerSpy);
     }
 
-    @AfterClass
+    @AfterAll
     public static void afterClass() {
         loggerFactoryMockedStatic.close();
     }
 
-    @Before
+    @BeforeEach
     public void setUp() {
         ConfigurableApplicationContext context = 
mock(ConfigurableApplicationContext.class);
         SpringBeanUtils.getInstance().setApplicationContext(context);
-        when(context.getBean(ShenyuResult.class)).thenReturn(new 
DefaultShenyuResult() { });
+        when(context.getBean(ShenyuResult.class)).thenReturn(new 
DefaultShenyuResult() {
+        });
 
         globalErrorHandler = new GlobalErrorHandler();
     }
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/handler/ShenyuWebHandlerTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/handler/ShenyuWebHandlerTest.java
index 044e417..6d2d211 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/handler/ShenyuWebHandlerTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/handler/ShenyuWebHandlerTest.java
@@ -21,9 +21,8 @@ import org.apache.shenyu.common.config.ShenyuConfig;
 import org.apache.shenyu.common.constant.Constants;
 import org.apache.shenyu.plugin.api.ShenyuPlugin;
 import org.apache.shenyu.plugin.api.context.ShenyuContext;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
 import org.springframework.mock.web.server.MockServerWebExchange;
 import org.springframework.web.server.ServerWebExchange;
@@ -34,6 +33,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import static org.mockito.Mockito.mock;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * test for ShenyuWebHandler.
@@ -45,7 +45,7 @@ public final class ShenyuWebHandlerTest {
     
     private final List<ShenyuPlugin> listPlugins = new ArrayList<>();
 
-    @Before
+    @BeforeEach
     public void setUp() {
         final ShenyuPlugin plugins = mock(ShenyuPlugin.class);
         listPlugins.add(plugins);
@@ -60,6 +60,6 @@ public final class ShenyuWebHandlerTest {
         exchange.getAttributes().put(Constants.CONTEXT, 
mock(ShenyuContext.class));
         exchange.getAttributes().put(Constants.PARAM_TRANSFORM, "{key:value}");
         Mono<Void> handle = shenyuWebHandler.handle(exchange);
-        Assert.assertNotNull(handle);
+        assertNotNull(handle);
     }
 }
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginLoaderTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginLoaderTest.java
index 8899aec..bec6fd1 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginLoaderTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginLoaderTest.java
@@ -18,22 +18,23 @@
 package org.apache.shenyu.web.loader;
 
 import org.apache.shenyu.plugin.api.utils.SpringBeanUtils;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.springframework.context.ApplicationContext;
 
 import java.io.BufferedOutputStream;
-import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.file.Path;
 import java.util.List;
 import java.util.jar.JarOutputStream;
 import java.util.zip.ZipEntry;
 
 import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
@@ -42,19 +43,20 @@ import static org.mockito.Mockito.when;
  * Test for  ShenyuPluginLoader.
  */
 public class ShenyuPluginLoaderTest {
-    @Rule
-    public TemporaryFolder folder = new TemporaryFolder();
+    
+    @TempDir
+    private static Path folder;
     
     private ShenyuPluginLoader shenyuPluginLoader;
     
-    private String path;
+    private Path path;
     
-    @Before
+    @BeforeEach
     public void setUp() throws IOException, NoSuchFieldException, 
IllegalAccessException {
         shenyuPluginLoader = ShenyuPluginLoader.getInstance();
-        File jar = folder.newFile("plugin.jar");
+        Path jar = folder.resolve("plugin.jar");
         path = jar.getParent();
-        FileOutputStream fos = new FileOutputStream(jar);
+        FileOutputStream fos = new FileOutputStream(jar.toFile());
         BufferedOutputStream bos = new BufferedOutputStream(fos);
         try (JarOutputStream jos = new JarOutputStream(bos)) {
             String pluginClz = "public class DividePlugin {}";
@@ -74,26 +76,27 @@ public class ShenyuPluginLoaderTest {
     @Test
     public void testGetBean() {
         boolean exist = 
SpringBeanUtils.getInstance().existBean("dividePlugin");
-        Assert.assertTrue(exist);
+        assertTrue(exist);
         Object dividePlugin = 
SpringBeanUtils.getInstance().getBean("dividePlugin");
-        Assert.assertNotNull(dividePlugin);
+        assertNotNull(dividePlugin);
     }
     
     @Test
     public void testGetInstance() {
-        Assert.assertThat(shenyuPluginLoader, 
is(ShenyuPluginLoader.getInstance()));
+        assertThat(shenyuPluginLoader, is(ShenyuPluginLoader.getInstance()));
     }
     
     @Test
     public void testGetPluginPathWithNoJar() throws IOException, 
ClassNotFoundException, InstantiationException, IllegalAccessException {
         List<ShenyuLoaderResult> pluginList = 
shenyuPluginLoader.loadExtendPlugins("test");
-        Assert.assertThat(pluginList.size(), is(0));
+        assertThat(pluginList.size(), is(0));
     }
     
     @Test
     public void testGetPluginPathWithJar() throws IOException, 
ClassNotFoundException, InstantiationException, IllegalAccessException {
         ShenyuPluginLoader loader = spy(shenyuPluginLoader);
-        List<ShenyuLoaderResult> pluginList = loader.loadExtendPlugins(path);
-        Assert.assertThat(pluginList.size(), is(1));
+        List<ShenyuLoaderResult> pluginList = 
loader.loadExtendPlugins(path.toString());
+        assertThat(pluginList.size(), is(1));
+        loader.close();
     }
 }
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginPathBuilderTest.java
 
b/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginPathBuilderTest.java
index a64007b..eef8f3a 100644
--- 
a/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginPathBuilderTest.java
+++ 
b/shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginPathBuilderTest.java
@@ -17,11 +17,12 @@
 
 package org.apache.shenyu.web.loader;
 
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.io.File;
 
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
 /**
  * Test for  ShenyuPluginPathBuilder.
  */
@@ -34,7 +35,7 @@ public final class ShenyuPluginPathBuilderTest {
     @Test
     public void testGetPluginPathByCustomPath() {
         File jarFile = ShenyuPluginPathBuilder.getPluginFile("/testpath");
-        Assert.assertNotNull(jarFile);
+        assertNotNull(jarFile);
     }
     
     /**
@@ -45,7 +46,7 @@ public final class ShenyuPluginPathBuilderTest {
     public void testGetPluginPathByPluginExt() {
         System.setProperty("plugin-ext", "/testUrl");
         File jarFile = ShenyuPluginPathBuilder.getPluginFile("");
-        Assert.assertNotNull(jarFile);
+        assertNotNull(jarFile);
     }
     
     /**
@@ -54,6 +55,6 @@ public final class ShenyuPluginPathBuilderTest {
     @Test
     public void testGetPluginPathByExtLib() {
         File jarFile = ShenyuPluginPathBuilder.getPluginFile("");
-        Assert.assertNotNull(jarFile);
+        assertNotNull(jarFile);
     }
 }
diff --git 
a/shenyu-web/src/test/java/org/apache/shenyu/web/logo/ShenyuLogoTest.java 
b/shenyu-web/src/test/java/org/apache/shenyu/web/logo/ShenyuLogoTest.java
index 623662d..00165bc 100644
--- a/shenyu-web/src/test/java/org/apache/shenyu/web/logo/ShenyuLogoTest.java
+++ b/shenyu-web/src/test/java/org/apache/shenyu/web/logo/ShenyuLogoTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shenyu.web.logo;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.boot.SpringApplication;
 import 
org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
 import org.springframework.core.env.ConfigurableEnvironment;
@@ -28,7 +28,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * The TestCase for ShenyuLogo.

Reply via email to