diff --git a/src/test/java/edu/bjtu/groupone/backend/UserControllerTest.java b/src/test/java/edu/bjtu/groupone/backend/UserControllerTest.java
index 7e2f691..7e82896 100644
--- a/src/test/java/edu/bjtu/groupone/backend/UserControllerTest.java
+++ b/src/test/java/edu/bjtu/groupone/backend/UserControllerTest.java
@@ -9,11 +9,8 @@
 import ch.qos.logback.classic.Logger;
 import org.slf4j.LoggerFactory;
 import edu.bjtu.groupone.backend.mapper.UserMapper;
-import edu.bjtu.groupone.backend.mapper.InviteCodeMapper;
 import edu.bjtu.groupone.backend.model.User;
-import edu.bjtu.groupone.backend.model.InviteCode;
 import edu.bjtu.groupone.backend.service.impl.UserServImpl;
-import edu.bjtu.groupone.backend.service.impl.InviteCodeServiceImpl;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
@@ -29,14 +26,12 @@
     @Mock
     private UserMapper userMapper;
 
-    @Mock
-    private InviteCodeMapper inviteCodeMapper;
+
 
     @InjectMocks
     private UserServImpl userService;
 
-    @InjectMocks
-    private InviteCodeServiceImpl inviteCodeService;
+
 
     @Test
     public void testLogin() {
@@ -56,27 +51,5 @@
         verify(userMapper, times(1)).login(loginUser);
     }
 
-    @Test
-    public void testUseInviteCode() {
-        String inviteCode = "TESTCODE";
 
-        // 构造一个有效的 InviteCode，注意设置 expiryTime
-        InviteCode dummy = new InviteCode();
-        dummy.setCode(inviteCode);
-        dummy.setRemainingUses(1);
-        // 设置有效期在未来，避免调用 expiryTime.isBefore(...)
-        dummy.setExpiryTime(LocalDateTime.now().plusDays(1));
-
-        // Stub 两个 Mapper 方法
-        when(inviteCodeMapper.selectByCode(inviteCode)).thenReturn(dummy);
-        when(inviteCodeMapper.decrementRemainingUses(inviteCode)).thenReturn(1);
-
-        // 调用 service
-        boolean used = inviteCodeService.useInviteCode(inviteCode);
-
-        // 断言和验证
-        assertThat(used).isTrue();
-        verify(inviteCodeMapper, times(1)).selectByCode(inviteCode);
-        verify(inviteCodeMapper, times(1)).decrementRemainingUses(inviteCode);
-    }
 }
