You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by sh...@apache.org on 2022/07/27 16:36:14 UTC

[servicecomb-java-chassis] branch master updated: [SCB-2644]migrate handler-flowcontrol-qps module to mockito (#3233)

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

shoothzj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new 281a98e33 [SCB-2644]migrate handler-flowcontrol-qps module to mockito (#3233)
281a98e33 is described below

commit 281a98e3338d4a99706ef57ead9fbba3467e1425
Author: Tian Luo <fu...@outlook.com>
AuthorDate: Thu Jul 28 00:36:09 2022 +0800

    [SCB-2644]migrate handler-flowcontrol-qps module to mockito (#3233)
---
 handlers/handler-flowcontrol-qps/pom.xml           |   5 -
 .../qps/ConsumerQpsFlowControlHandler.java         |   6 +
 .../qps/ProviderQpsFlowControlHandler.java         |   7 +
 .../servicecomb/qps/QpsControllerManager.java      |   9 +-
 .../servicecomb/qps/QpsControllerManagerTest.java  | 245 +++++----------------
 .../qps/TestConsumerQpsFlowControlHandler.java     |  50 +----
 .../qps/TestProviderQpsFlowControlHandler.java     |  60 ++---
 7 files changed, 104 insertions(+), 278 deletions(-)

diff --git a/handlers/handler-flowcontrol-qps/pom.xml b/handlers/handler-flowcontrol-qps/pom.xml
index 079c3ce34..990b4e359 100644
--- a/handlers/handler-flowcontrol-qps/pom.xml
+++ b/handlers/handler-flowcontrol-qps/pom.xml
@@ -45,10 +45,5 @@
       <artifactId>foundation-test-scaffolding</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.jmockit</groupId>
-      <artifactId>jmockit</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 </project>
diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerQpsFlowControlHandler.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerQpsFlowControlHandler.java
index de1e317a8..8885af4da 100644
--- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerQpsFlowControlHandler.java
+++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerQpsFlowControlHandler.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.qps;
 
+import com.google.common.annotations.VisibleForTesting;
 import org.apache.servicecomb.core.Handler;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.swagger.invocation.AsyncResponse;
@@ -29,6 +30,11 @@ import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
  */
 public class ConsumerQpsFlowControlHandler implements Handler {
 
+  @VisibleForTesting
+  public QpsControllerManager getQpsControllerMgr() {
+    return qpsControllerMgr;
+  }
+
   private final QpsControllerManager qpsControllerMgr = new QpsControllerManager(false);
 
   @Override
diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java
index 294c1b5a4..44dc1b0dd 100644
--- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java
+++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderQpsFlowControlHandler.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.qps;
 
+import com.google.common.annotations.VisibleForTesting;
 import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.core.Handler;
 import org.apache.servicecomb.core.Invocation;
@@ -58,4 +59,10 @@ public class ProviderQpsFlowControlHandler implements Handler {
       return false;
     }
   }
+
+  @VisibleForTesting
+  public QpsControllerManager getQpsControllerMgr() {
+    return qpsControllerMgr;
+  }
+
 }
diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java
index 1e954a65d..e84cd7000 100644
--- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java
+++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
+import com.google.common.annotations.VisibleForTesting;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
@@ -75,6 +76,11 @@ public class QpsControllerManager {
     initGlobalQpsController();
   }
 
+  @VisibleForTesting
+  public Map<String, AbstractQpsStrategy> getQualifiedNameControllerMap() {
+    return qualifiedNameControllerMap;
+  }
+
   public QpsStrategy getOrCreate(String microserviceName, Invocation invocation) {
     final String name = validatedName(microserviceName);
     return qualifiedNameControllerMap
@@ -95,7 +101,8 @@ public class QpsControllerManager {
    * Create relevant qpsLimit dynamicProperty and watch the configuration change.
    * Search and return a valid qpsController.
    */
-  private AbstractQpsStrategy create(String qualifiedNameKey, String microserviceName,
+  @VisibleForTesting
+  AbstractQpsStrategy create(String qualifiedNameKey, String microserviceName,
       Invocation invocation) {
     createForService(qualifiedNameKey, microserviceName, invocation);
     String qualifiedAnyServiceName = Config.ANY_SERVICE + qualifiedNameKey.substring(microserviceName.length());
diff --git a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java
index 3cd0fc690..de2ee8e77 100644
--- a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java
+++ b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java
@@ -28,9 +28,6 @@ import org.junit.Test;
 import org.junit.jupiter.api.Assertions;
 import org.mockito.Mockito;
 
-import mockit.Expectations;
-import mockit.Mocked;
-
 public class QpsControllerManagerTest {
 
   @Before
@@ -44,17 +41,13 @@ public class QpsControllerManagerTest {
   }
 
   @Test
-  public void testGetOrCreate(@Mocked Invocation invocation, @Mocked OperationMeta operationMeta) {
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server";
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test";
-      }
-    };
+  public void testGetOrCreate() {
+    Invocation invocation = Mockito.mock(Invocation.class);
+    OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
+    Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test");
+
     QpsControllerManager testQpsControllerManager = new QpsControllerManager(false);
     initTestQpsControllerManager(false, testQpsControllerManager, invocation, operationMeta);
 
@@ -85,17 +78,12 @@ public class QpsControllerManagerTest {
   }
 
   @Test
-  public void testGetOrCreateWithGlobalConfig(@Mocked Invocation invocation, @Mocked OperationMeta operationMeta) {
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server";
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test";
-      }
-    };
+  public void testGetOrCreateWithGlobalConfig() {
+    Invocation invocation = Mockito.mock(Invocation.class);
+    OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
+    Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test");
 
     QpsControllerManager testQpsControllerManager = new QpsControllerManager(true);
 
@@ -127,78 +115,41 @@ public class QpsControllerManagerTest {
   }
 
   @Test
-  public void testQualifiedNameKey(@Mocked Invocation invocation, @Mocked OperationMeta operationMeta) {
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "schema";
-        operationMeta.getSchemaQualifiedName();
-        result = "schema.opr";
-      }
-    };
+  public void testQualifiedNameKey() {
+    Invocation invocation = Mockito.mock(Invocation.class);
+    OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
+    Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
+    Mockito.when(invocation.getSchemaId()).thenReturn("schema");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("schema.opr");
     QpsControllerManager qpsControllerManager = new QpsControllerManager(true);
     QpsStrategy qpsStrategy = qpsControllerManager.getOrCreate("service", invocation);
     Assertions.assertEquals("servicecomb.flowcontrol.Provider.qps.global.limit",
         ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "test_schema";
-        operationMeta.getSchemaQualifiedName();
-        result = "test_schema.test_opr";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("test_schema");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("test_schema.test_opr");
     qpsStrategy = qpsControllerManager.getOrCreate("test_service", invocation);
     Assertions.assertEquals("servicecomb.flowcontrol.Provider.qps.global.limit",
         ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "test_schema";
-        operationMeta.getSchemaQualifiedName();
-        result = "test-schema.test-opr";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("test_schema");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("test-schema.test-opr");
     qpsStrategy = qpsControllerManager.getOrCreate("test-service", invocation);
     Assertions.assertEquals("servicecomb.flowcontrol.Provider.qps.global.limit",
         ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "schema";
-        operationMeta.getSchemaQualifiedName();
-        result = "schema.opr.tail";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("schema");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("schema.opr.tail");
     qpsStrategy = qpsControllerManager.getOrCreate("svc", invocation);
     Assertions.assertEquals("servicecomb.flowcontrol.Provider.qps.global.limit",
         ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "schema.opr2";
-        operationMeta.getSchemaQualifiedName();
-        result = "schema.opr2.tail";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("schema.opr2");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("schema.opr2.tail");
     qpsStrategy = qpsControllerManager.getOrCreate("svc", invocation);
     Assertions.assertEquals("servicecomb.flowcontrol.Provider.qps.global.limit",
         ((AbstractQpsStrategy) qpsStrategy).getKey());
@@ -208,74 +159,33 @@ public class QpsControllerManagerTest {
   private void testGetOrCreateCommon(boolean isProvider, QpsControllerManager testQpsControllerManager,
       Invocation invocation,
       OperationMeta operationMeta) {
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test";
-      }
-    };
+    Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test");
+
     setConfigWithDefaultPrefix(isProvider, "pojo.server", 200);
     QpsStrategy qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation);
     Assertions.assertEquals("pojo.server", ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(200, (long) ((AbstractQpsStrategy) qpsStrategy).getQpsLimit());
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        operationMeta.getSchemaQualifiedName();
-        result = "server2.test";
-      }
-    };
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server2.test");
     qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation);
     Assertions.assertEquals("pojo", ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(100, (long) ((AbstractQpsStrategy) qpsStrategy).getQpsLimit());
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        operationMeta.getSchemaQualifiedName();
-        result = "serve.test";
-      }
-    };
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("serve.test");
     qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation);
     Assertions.assertEquals("pojo", ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(100, (long) ((AbstractQpsStrategy) qpsStrategy).getQpsLimit());
 
     // pojo.server.test
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test";
-      }
-    };
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test");
     setConfigWithDefaultPrefix(isProvider, "pojo.server.test", 300);
     qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation);
     Assertions.assertEquals("pojo.server.test", ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(300, (long) ((AbstractQpsStrategy) qpsStrategy).getQpsLimit());
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test2";
-      }
-    };
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test2");
     qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation);
     Assertions.assertEquals("pojo.server", ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(200, (long) ((AbstractQpsStrategy) qpsStrategy).getQpsLimit());
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-
-        operationMeta.getSchemaQualifiedName();
-        result = "server.tes";
-      }
-    };
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.tes");
     qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation);
     Assertions.assertEquals("pojo.server", ((AbstractQpsStrategy) qpsStrategy).getKey());
     Assertions.assertEquals(200, (long) ((AbstractQpsStrategy) qpsStrategy).getQpsLimit());
@@ -288,16 +198,9 @@ public class QpsControllerManagerTest {
       Invocation invocation,
       OperationMeta operationMeta) {
     // pojo.server.test
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server";
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test";
-      }
-    };
+    Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test");
     QpsStrategy qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation);
     if (isProvider) {
       Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey());
@@ -307,16 +210,8 @@ public class QpsControllerManagerTest {
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
     // pojo.server.test2
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server";
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test2";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test2");
     testQpsControllerManager.getOrCreate("pojo", invocation);
     if (isProvider) {
       Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey());
@@ -326,16 +221,8 @@ public class QpsControllerManagerTest {
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
     // pojo.server.tes
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server";
-        operationMeta.getSchemaQualifiedName();
-        result = "server.tes";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.tes");
     testQpsControllerManager.getOrCreate("pojo", invocation);
     if (isProvider) {
       Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey());
@@ -345,16 +232,8 @@ public class QpsControllerManagerTest {
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
     // pojo.server2.test
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server2";
-        operationMeta.getSchemaQualifiedName();
-        result = "server2.test";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("server2");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server2.test");
     testQpsControllerManager.getOrCreate("pojo", invocation);
     if (isProvider) {
       Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey());
@@ -364,16 +243,8 @@ public class QpsControllerManagerTest {
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
     // pojo.serve.test
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "serve";
-        operationMeta.getSchemaQualifiedName();
-        result = "serve.test";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("serve");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("serve.test");
     testQpsControllerManager.getOrCreate("pojo", invocation);
     if (isProvider) {
       Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey());
@@ -383,16 +254,8 @@ public class QpsControllerManagerTest {
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
     // pojo2.server.test
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server";
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test");
     qpsStrategy = testQpsControllerManager.getOrCreate("pojo2", invocation);
     if (isProvider) {
       Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey());
@@ -402,16 +265,8 @@ public class QpsControllerManagerTest {
     Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue());
 
     // poj.server.test
-    new Expectations() {
-      {
-        invocation.getOperationMeta();
-        result = operationMeta;
-        invocation.getSchemaId();
-        result = "server";
-        operationMeta.getSchemaQualifiedName();
-        result = "server.test";
-      }
-    };
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test");
     qpsStrategy = testQpsControllerManager.getOrCreate("poj", invocation);
     if (isProvider) {
       Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey());
diff --git a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConsumerQpsFlowControlHandler.java b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConsumerQpsFlowControlHandler.java
index c3754282c..f6701f213 100644
--- a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConsumerQpsFlowControlHandler.java
+++ b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestConsumerQpsFlowControlHandler.java
@@ -17,7 +17,7 @@
 
 package org.apache.servicecomb.qps;
 
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.Map;
 
 import org.apache.servicecomb.core.Invocation;
 import org.apache.servicecomb.core.definition.OperationMeta;
@@ -34,10 +34,6 @@ import org.junit.jupiter.api.Assertions;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mockito;
 
-import mockit.Deencapsulation;
-import mockit.Mock;
-import mockit.MockUp;
-
 public class TestConsumerQpsFlowControlHandler {
 
   ConsumerQpsFlowControlHandler handler;
@@ -74,7 +70,7 @@ public class TestConsumerQpsFlowControlHandler {
   @Test
   public void testHandle() throws Exception {
     String key = "svc.schema.opr";
-    AbstractQpsStrategy qpsStrategy = new FixedWindowStrategy();
+    AbstractQpsStrategy qpsStrategy = Mockito.spy(new FixedWindowStrategy());
     qpsStrategy.setKey("key");
     qpsStrategy.setQpsLimit(12L);
     Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
@@ -82,20 +78,10 @@ public class TestConsumerQpsFlowControlHandler {
     Mockito.when(invocation.getSchemaId()).thenReturn("schema");
     Mockito.when(invocation.getMicroserviceName()).thenReturn("svc");
     setQpsController(key, qpsStrategy);
-    new MockUp<FixedWindowStrategy>() {
-      @Mock
-      public boolean isLimitNewRequest() {
-        return true;
-      }
-    };
-
-    new MockUp<QpsControllerManager>() {
-      @Mock
-      private QpsStrategy create(String qualifiedNameKey) {
-        return qpsStrategy;
-      }
-    };
 
+    QpsControllerManager qpsControllerMgr = Mockito.spy(handler.getQpsControllerMgr());
+    Mockito.doReturn(qpsStrategy).when(qpsControllerMgr).getOrCreate("svc", invocation);
+    Mockito.when(qpsStrategy.isLimitNewRequest()).thenReturn(true);
     handler.handle(invocation, asyncResp);
 
     ArgumentCaptor<InvocationException> captor = ArgumentCaptor.forClass(InvocationException.class);
@@ -109,7 +95,7 @@ public class TestConsumerQpsFlowControlHandler {
   @Test
   public void testHandleIsLimitNewRequestAsFalse() throws Exception {
     String key = "service.schema.id";
-    AbstractQpsStrategy qpsStrategy = new FixedWindowStrategy();
+    AbstractQpsStrategy qpsStrategy = Mockito.spy(new FixedWindowStrategy());
     qpsStrategy.setKey("service");
     qpsStrategy.setQpsLimit(12L);
     Mockito.when(invocation.getMicroserviceName()).thenReturn("service");
@@ -118,29 +104,17 @@ public class TestConsumerQpsFlowControlHandler {
     Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("schema.id");
     setQpsController(key, qpsStrategy);
 
-    new MockUp<QpsStrategy>() {
-      @Mock
-      public boolean isLimitNewRequest() {
-        return false;
-      }
-    };
-
-    new MockUp<QpsControllerManager>() {
-
-      @Mock
-      private QpsStrategy create(String qualifiedNameKey) {
-        return qpsStrategy;
-      }
-    };
+    QpsControllerManager spy = Mockito.spy(handler.getQpsControllerMgr());
+    Mockito.doReturn(qpsStrategy).when(spy).getOrCreate("svc", invocation);
+    Mockito.when(qpsStrategy.isLimitNewRequest()).thenReturn(false);
     handler.handle(invocation, asyncResp);
 
     Mockito.verify(invocation).next(asyncResp);
   }
 
-  private void setQpsController(String key, QpsStrategy qpsStrategy) {
-    QpsControllerManager qpsControllerManager = Deencapsulation.getField(handler, "qpsControllerMgr");
-    ConcurrentHashMap<String, QpsStrategy> objMap = Deencapsulation
-        .getField(qpsControllerManager, "qualifiedNameControllerMap");
+  private void setQpsController(String key, AbstractQpsStrategy qpsStrategy) {
+    QpsControllerManager qpsControllerManager = handler.getQpsControllerMgr();
+    Map<String, AbstractQpsStrategy> objMap = qpsControllerManager.getQualifiedNameControllerMap();
     objMap.put(key, qpsStrategy);
   }
 }
diff --git a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestProviderQpsFlowControlHandler.java b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestProviderQpsFlowControlHandler.java
index 3ae823136..bfaa8fb99 100644
--- a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestProviderQpsFlowControlHandler.java
+++ b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/TestProviderQpsFlowControlHandler.java
@@ -33,11 +33,6 @@ import org.junit.jupiter.api.Assertions;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mockito;
 
-import mockit.Expectations;
-import mockit.Injectable;
-import mockit.Mock;
-import mockit.MockUp;
-
 public class TestProviderQpsFlowControlHandler {
   ProviderQpsFlowControlHandler handler;
 
@@ -58,22 +53,16 @@ public class TestProviderQpsFlowControlHandler {
   }
 
   @Test
-  public void testGlobalQpsControl(final @Injectable Invocation invocation,
-      final @Injectable AsyncResponse asyncResp) throws Exception {
-    new Expectations() {
-      {
-        invocation.getHandlerIndex();
-        result = 0;
-        invocation.getContext(Const.SRC_MICROSERVICE);
-        result = "test";
-        invocation.getOperationMeta();
-        result = QpsControllerManagerTest.getMockOperationMeta("pojo", "server", "opr");
-        invocation.getSchemaId();
-        result = "server";
-        asyncResp.producerFail((Throwable) any);
-        result = new RuntimeException("test error");
-      }
-    };
+  public void testGlobalQpsControl() throws Exception {
+    Invocation invocation = Mockito.mock(Invocation.class);
+    AsyncResponse asyncResp = Mockito.mock(AsyncResponse.class);
+    OperationMeta operationMeta = QpsControllerManagerTest.getMockOperationMeta("pojo", "server", "opr");
+
+    Mockito.when(invocation.getHandlerIndex()).thenReturn(0);
+    Mockito.when(invocation.getContext(Const.SRC_MICROSERVICE)).thenReturn("test");
+    Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta);
+    Mockito.when(invocation.getSchemaId()).thenReturn("server");
+    Mockito.doThrow(new RuntimeException("test error")).when(asyncResp).producerFail(Mockito.any());
 
     ProviderQpsFlowControlHandler gHandler = new ProviderQpsFlowControlHandler();
     gHandler.handle(invocation, asyncResp);
@@ -134,15 +123,11 @@ public class TestProviderQpsFlowControlHandler {
     Mockito.when(invocation.getOperationMeta()).thenReturn(mockOperationMeta);
     Mockito.when(invocation.getSchemaId()).thenReturn("server");
 
-    new MockUp<QpsControllerManager>() {
-      @Mock
-      private QpsStrategy create(String qualifiedNameKey) {
-        AbstractQpsStrategy strategy = new FixedWindowStrategy();
-        strategy.setKey(qualifiedNameKey);
-        strategy.setQpsLimit(1L);
-        return strategy;
-      }
-    };
+    AbstractQpsStrategy strategy = new FixedWindowStrategy();
+    strategy.setKey("");
+    strategy.setQpsLimit(1L);
+    QpsControllerManager qpsControllerMgr = Mockito.spy(handler.getQpsControllerMgr());
+    Mockito.doReturn(strategy).when(qpsControllerMgr).create("test.server.opr", "test", invocation);
 
     handler.handle(invocation, asyncResp);
     handler.handle(invocation, asyncResp);
@@ -164,15 +149,12 @@ public class TestProviderQpsFlowControlHandler {
     Mockito.when(invocation.getOperationMeta()).thenReturn(mockOperationMeta);
     Mockito.when(invocation.getSchemaId()).thenReturn("server");
 
-    new MockUp<QpsControllerManager>() {
-      @Mock
-      private QpsStrategy create(String qualifiedNameKey) {
-        AbstractQpsStrategy strategy = new FixedWindowStrategy();
-        strategy.setKey(qualifiedNameKey);
-        strategy.setQpsLimit(1L);
-        return strategy;
-      }
-    };
+    AbstractQpsStrategy strategy = new FixedWindowStrategy();
+    strategy.setKey("");
+    strategy.setQpsLimit(1L);
+    QpsControllerManager qpsControllerMgr = Mockito.spy(handler.getQpsControllerMgr());
+    Mockito.doReturn(strategy).when(qpsControllerMgr).create("test.server.opr", "test", invocation);
+
     handler.handle(invocation, asyncResp);
 
     Mockito.verify(invocation, Mockito.times(0)).next(asyncResp);