用户
Change-Id: I33150cf6ffdea3bf582023bf540394075d081af9
diff --git a/src/test/java/com/example/myproject/controller/CommentControllerTest.java b/src/test/java/com/example/myproject/controller/CommentControllerTest.java
new file mode 100644
index 0000000..9dedd29
--- /dev/null
+++ b/src/test/java/com/example/myproject/controller/CommentControllerTest.java
@@ -0,0 +1,81 @@
+package com.example.myproject.controller;
+
+import com.example.myproject.entity.Comments;
+import com.example.myproject.entity.Users;
+import com.example.myproject.service.CommentService;
+import com.example.myproject.utils.Result;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.*;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.mockito.Mockito.*;
+import static org.junit.jupiter.api.Assertions.*;
+
+class CommentControllerTest {
+
+ @InjectMocks
+ private CommentController commentController;
+ @Mock
+ private CommentService commentService;
+
+ @Mock
+ private Users mockUser;
+
+ @BeforeEach
+ void setup() {
+ MockitoAnnotations.openMocks(this);
+ }
+
+ // 测试添加评论
+ @Test
+ void addCommentTest() {
+ Long postId = 1L;
+ Comments comment = new Comments();
+ comment.setUserId(1L);
+ comment.setContent("This is a comment");
+ comment.setParentComment(0L);
+ // 模拟服务层的行为
+ doNothing().when(commentService).addComment(eq(postId), eq(comment));
+
+ // 调用控制器的方法
+ String result = commentController.addComment(postId, comment);
+
+ // 验证返回的结果
+ assertEquals("Comment added successfully!", result);
+
+ // 验证服务方法是否被调用
+ verify(commentService, times(1)).addComment(eq(postId), eq(comment));
+ }
+
+ // 测试获取评论
+ @Test
+ void getCommentsByPostIdTest() {
+ Long postId = 1L;
+
+ // 模拟评论数据
+ Map<String, Object> commentData = new HashMap<>();
+ commentData.put("commentId", 1L);
+ commentData.put("content", "This is a comment");
+ commentData.put("userId", 1L);
+ commentData.put("nickname", "user1");
+
+ // 模拟服务层的行为
+ when(commentService.getCommentsByPostId(postId)).thenReturn(List.of(commentData));
+
+ // 调用控制器的方法
+ List<Map<String, Object>> comments = commentController.getCommentsByPostId(postId);
+
+ // 验证返回的评论数据
+ assertEquals(1, comments.size());
+ assertEquals("This is a comment", comments.get(0).get("content"));
+ assertEquals("user1", comments.get(0).get("nickname"));
+
+ // 验证服务方法是否被调用
+ verify(commentService, times(1)).getCommentsByPostId(postId);
+ }
+}