diff --git a/hippo4j-core/pom.xml b/hippo4j-core/pom.xml
index 7088a3f1..2429039c 100644
--- a/hippo4j-core/pom.xml
+++ b/hippo4j-core/pom.xml
@@ -20,5 +20,9 @@
spring-boot-starter-test
test
+
+ org.mockito
+ mockito-inline
+
diff --git a/hippo4j-core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java b/hippo4j-core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java
new file mode 100644
index 00000000..5e47f293
--- /dev/null
+++ b/hippo4j-core/src/test/java/cn/hippo4j/core/proxy/RejectedProxyInvocationHandlerTest.java
@@ -0,0 +1,58 @@
+package cn.hippo4j.core.proxy;
+
+import cn.hippo4j.common.api.ThreadPoolCheckAlarm;
+import cn.hippo4j.common.config.ApplicationContextHolder;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.springframework.context.ApplicationContext;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.concurrent.atomic.AtomicLong;
+
+
+@RunWith(MockitoJUnitRunner.class)
+public class RejectedProxyInvocationHandlerTest {
+
+ @Mock
+ private ThreadPoolCheckAlarm mockAlarmHandler;
+
+ @Mock
+ private ApplicationContext applicationContext;
+
+ @Mock
+ private Method mockMethod;
+ private RejectedProxyInvocationHandler handler;
+
+ @Before
+ public void setUp() {
+ Object target = new Object();
+ String threadPoolId = "test-pool";
+ AtomicLong rejectCount = new AtomicLong(0);
+ handler = new RejectedProxyInvocationHandler(target, threadPoolId, rejectCount);
+ }
+
+ @Test
+ public void testInvoke() throws Throwable {
+
+ Object[] mockArgs = new Object[] {"arg1", "arg2"};
+ MockedStatic mockedStatic = Mockito.mockStatic(ApplicationContextHolder.class);
+ mockedStatic.when(ApplicationContextHolder::getInstance).thenReturn(applicationContext);
+ mockedStatic.when(() -> ApplicationContextHolder.getBean(ThreadPoolCheckAlarm.class)).thenReturn(mockAlarmHandler);
+ Mockito.doNothing().when(mockAlarmHandler).asyncSendRejectedAlarm("test-pool");
+ handler.invoke(null, mockMethod, mockArgs);
+
+ Mockito.when(mockMethod.invoke(new Object(), mockArgs)).thenThrow(new IllegalAccessException());
+ try {
+ handler.invoke(null, mockMethod, mockArgs);
+ } catch (Exception ex){
+ Assertions.assertTrue(ex instanceof InvocationTargetException);
+ }
+ }
+}