注册登录,用户等级,社交,动态,新手任务
Change-Id: I1d3183526517fb3c0dab665e0e7547eefa5c9d76
diff --git a/src/test/java/com/example/myproject/controller/SeedCommentControllerTest.java b/src/test/java/com/example/myproject/controller/SeedCommentControllerTest.java
new file mode 100644
index 0000000..7fa6ff3
--- /dev/null
+++ b/src/test/java/com/example/myproject/controller/SeedCommentControllerTest.java
@@ -0,0 +1,91 @@
+package com.example.myproject.controller;
+
+import com.example.myproject.entity.SeedComment;
+import com.example.myproject.service.SeedCommentService;
+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 org.springframework.http.ResponseEntity;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.mockito.Mockito.*;
+import static org.junit.jupiter.api.Assertions.*;
+
+public class SeedCommentControllerTest {
+
+ @InjectMocks
+ private SeedCommentController seedCommentController;
+
+ @Mock
+ private SeedCommentService seedCommentService;
+
+ @BeforeEach
+ public void setUp() {
+ MockitoAnnotations.openMocks(this); // 初始化 Mockito 注解
+ }
+
+ // 测试发布评论
+ @Test
+ public void testPublishComment() {
+ int seedId = 1;
+ SeedComment seedComment = new SeedComment();
+ seedComment.setContent("Test comment content");
+ seedComment.setUserId(1);
+ seedComment.setComCommentId(0); // 顶级评论
+
+ // 模拟服务层的返回值
+ String expectedResponse = "{ \"status\": \"success\", \"message\": \"评论发布成功\" }";
+ when(seedCommentService.publishComment(seedId, seedComment)).thenReturn(expectedResponse);
+
+ // 调用控制器的方法
+ String result = seedCommentController.publishComment(seedId, seedComment);
+
+ // 验证结果
+ assertEquals(expectedResponse, result);
+ }
+
+ // 测试获取种子下所有评论
+ @Test
+ public void testGetAllComments() {
+ int seedId = 1;
+
+ // 模拟服务层的返回值
+ Map<String, Object> expectedResponse = new HashMap<>();
+ expectedResponse.put("status", "success");
+ expectedResponse.put("comments", "dummyComments"); // 示例返回数据
+
+ when(seedCommentService.getAllCommentsForSeed(seedId)).thenReturn(expectedResponse);
+
+ // 调用控制器的方法
+ Map<String, Object> result = seedCommentController.getAllComments(seedId);
+
+ // 验证结果
+ assertEquals(expectedResponse, result);
+ }
+
+ // 测试点赞切换操作
+ @Test
+ public void testToggleLike() {
+ Long commentId = 1L;
+ Map<String, Object> request = new HashMap<>();
+ request.put("user_id", 1L);
+
+ // 模拟服务层的返回值
+ Map<String, Object> expectedResponse = new HashMap<>();
+ expectedResponse.put("status", "success");
+ expectedResponse.put("message", "操作成功");
+ expectedResponse.put("liked", "true");
+
+ when(seedCommentService.toggleLike(commentId, 1L)).thenReturn(expectedResponse);
+
+ // 调用控制器的方法
+ Map<String, Object> result = seedCommentController.toggleLike(commentId, request);
+
+ // 验证结果
+ assertEquals(expectedResponse, result);
+ }
+}