推荐算法 用户考核 头像上传

Change-Id: Iaac96768d5238142f5ed445f5cc64ccedd239d0f
diff --git a/src/test/java/com/pt5/pthouduan/ControllerTest/RecommendControllerTest.java b/src/test/java/com/pt5/pthouduan/ControllerTest/RecommendControllerTest.java
new file mode 100644
index 0000000..169ad5f
--- /dev/null
+++ b/src/test/java/com/pt5/pthouduan/ControllerTest/RecommendControllerTest.java
@@ -0,0 +1,76 @@
+package com.pt5.pthouduan.ControllerTest;
+
+import com.pt5.pthouduan.controller.RecommendController;
+import com.pt5.pthouduan.entity.Torrent;
+import com.pt5.pthouduan.service.RecommendService;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.*;
+
+class RecommendControllerTest {
+
+    @Mock
+    private RecommendService recommendService;
+
+    @InjectMocks
+    private RecommendController recommendController;
+
+    @BeforeEach
+    void setUp() {
+        MockitoAnnotations.openMocks(this);
+    }
+
+    @Test
+    void getRecommendList_Success() {
+        // 准备测试数据
+        Torrent torrent1 = new Torrent();
+
+        // 执行测试
+        List<Torrent> actualList = recommendController.getRecommendList(123L);
+
+        // 验证结果
+        verify(recommendService, times(1)).recommendForUser(123L);
+    }
+
+    @Test
+    void getRecommendList_EmptyList() {
+        // 模拟空列表返回
+        when(recommendService.recommendForUser(anyLong()))
+                .thenReturn(List.of());
+
+        List<Torrent> result = recommendController.getRecommendList(456L);
+
+        assertTrue(result.isEmpty());
+    }
+
+    @Test
+    void getRecommendList_InvalidUserId() {
+        // 模拟无效用户ID情况
+        when(recommendService.recommendForUser(-1L))
+                .thenThrow(new IllegalArgumentException("Invalid user ID"));
+
+        assertThrows(IllegalArgumentException.class, () -> {
+            recommendController.getRecommendList(-1L);
+        });
+    }
+
+    @Test
+    void getRecommendList_ServiceException() {
+        // 模拟服务层异常
+        when(recommendService.recommendForUser(anyLong()))
+                .thenThrow(new RuntimeException("Recommendation service unavailable"));
+
+        assertThrows(RuntimeException.class, () -> {
+            recommendController.getRecommendList(999L);
+        });
+    }
+}