diff --git a/src/api/helpComment.test.js b/src/api/helpComment.test.js
index a4a7d99..99efd8c 100644
--- a/src/api/helpComment.test.js
+++ b/src/api/helpComment.test.js
@@ -1,6 +1,6 @@
 import MockAdapter from 'axios-mock-adapter';
 import { api } from './auth'; // 添加api导入
-import { likePostComment, getCommentReplies, addCommentReply, deleteComment } from './helpComment';
+import { likeHelpPostComment, getHelpCommentReplies, addHelpCommentReply, deleteHelpComment } from './helpComment';
 
 describe('求助帖评论API', () => {
   let mockAxios;
@@ -13,27 +13,27 @@
     mockAxios.restore();
   });
 
-  describe('likePostComment - 点赞求助帖评论', () => {
+  describe('likeHelpPostComment - 点赞求助帖评论', () => {
     it('应该成功发送点赞请求', async () => {
       const mockResponse = { code: 200, message: '点赞成功' };
       mockAxios.onPost('/help/comments/123/like').reply(200, mockResponse);
 
-      const response = await likePostComment('123');
+      const response = await likeHelpPostComment('123');
       expect(response.data).toEqual(mockResponse);
     });
   });
 
-  describe('getCommentReplies - 获取评论回复', () => {
+  describe('getHelpCommentReplies - 获取评论回复', () => {
     it('应该返回正确的回复数据结构', async () => {
       const mockData = [{ id: '1', content: '回复内容' }];
       mockAxios.onGet('/help/comments/456/replies').reply(200, { code: 200, data: mockData });
 
-      const response = await getCommentReplies('456');
+      const response = await getHelpCommentReplies('456');
       expect(response.data.data).toEqual(mockData);
     });
   });
 
-  describe('addCommentReply - 添加评论回复', () => {
+  describe('addHelpCommentReply - 添加评论回复', () => {
     it('应该正确发送回复内容（无图片）', async () => {
       const commentId = '789';
       const replyData = {
@@ -49,7 +49,7 @@
         return [200, { code: 200 }];
       });
 
-      const response = await addCommentReply(commentId, replyData);
+      const response = await addHelpCommentReply(commentId, replyData);
       expect(response.status).toBe(200);
     });
     it('应该正确处理带图片的回复', async () => {
@@ -66,11 +66,11 @@
         return [200, { code: 200 }];
       });
 
-      const response = await addCommentReply(commentId, replyData);
+      const response = await addHelpCommentReply(commentId, replyData);
       expect(response.status).toBe(200);
     });
   });
-  describe('deleteComment - 删除评论', () => {
+  describe('deleteHelpComment - 删除评论', () => {
     it('应该正确发送删除请求', async () => {
       const commentId = '101112';
       const authorId = 'user1';
@@ -80,7 +80,7 @@
         return [200, { code: 200 }];
       });
 
-      const response = await deleteComment(commentId, authorId);
+      const response = await deleteHelpComment(commentId, authorId);
       expect(response.status).toBe(200);
     });
   });
