diff --git a/src/components/HelpDetail.test.jsx b/src/components/HelpDetail.test.jsx
index 6364be2..2e917e7 100644
--- a/src/components/HelpDetail.test.jsx
+++ b/src/components/HelpDetail.test.jsx
@@ -53,7 +53,7 @@
     mockNavigate.mockClear();
     
     // 设置模拟的 API 响应
-    helpPostApi.getPostDetail.mockResolvedValue({
+    helpPostApi.getHelpPostDetail.mockResolvedValue({
       data: {
         code: 200,
         data: {
@@ -111,29 +111,33 @@
     fireEvent.click(screen.getByText(/点赞 \(5\)/));
 
     await waitFor(() => {
-      expect(helpPostApi.likePost).toHaveBeenCalledWith('1');
+      expect(helpPostApi.likeHelpPost).toHaveBeenCalledWith('1');
     });
   });
 
   it('应该能够提交评论', async () => {
-    renderComponent();
+  renderComponent();
 
-    await waitFor(() => {
-      expect(screen.getByText('测试求助帖')).toBeInTheDocument();
-    });
-
-    const commentInput = screen.getByPlaceholderText('写下你的评论...');
-    fireEvent.change(commentInput, { target: { value: '新评论' } });
-    fireEvent.click(screen.getByText('发表评论'));
-
-    await waitFor(() => {
-      expect(helpPostApi.addPostComment).toHaveBeenCalledWith('1', {
-        content: '新评论',
-        authorId: 'testuser'
-      });
-    });
+  await waitFor(() => {
+    expect(screen.getByText('测试求助帖')).toBeInTheDocument();
   });
 
+  const commentInput = screen.getByPlaceholderText('写下你的评论...');
+  fireEvent.change(commentInput, { target: { value: '新评论' } });
+  fireEvent.click(screen.getByText('发表评论'));
+
+  await waitFor(() => {
+    expect(helpPostApi.addHelpPostComment).toHaveBeenCalled();
+    
+    const calledArgs = helpPostApi.addHelpPostComment.mock.calls[0];
+    expect(calledArgs[0]).toBe('1'); // postId
+    const formData = calledArgs[1];
+    
+    expect(formData instanceof FormData).toBe(true);
+    expect(formData.get('authorId')).toBe('testuser');
+    expect(formData.get('content')).toBe('新评论');
+  });
+});
   it('应该能够点赞评论', async () => {
     renderComponent();
 
@@ -144,7 +148,7 @@
     fireEvent.click(screen.getAllByText(/👍 \(2\)/)[0]);
 
     await waitFor(() => {
-      expect(helpCommentApi.likePostComment).toHaveBeenCalledWith('c1');
+      expect(helpCommentApi.likeHelpPostComment).toHaveBeenCalledWith('c1');
     });
   });
 
