用户头像
Change-Id: I562c0cb7212c1ac9c7ad1dad96b136fc8c23269c
diff --git a/src/test/java/com/example/myproject/controller/UserControllerTest.java b/src/test/java/com/example/myproject/controller/UserControllerTest.java
index a97e169..9fd65d9 100644
--- a/src/test/java/com/example/myproject/controller/UserControllerTest.java
+++ b/src/test/java/com/example/myproject/controller/UserControllerTest.java
@@ -8,6 +8,7 @@
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.springframework.mock.web.MockMultipartFile;
import java.util.HashMap;
import java.util.Map;
@@ -186,14 +187,13 @@
void testEditProfile() {
Long userId = 1L;
Map<String, Object> profileData = new HashMap<>();
- profileData.put("avatarUrl", "https://example.com/avatar.jpg");
profileData.put("nickname", "newNickname");
profileData.put("gender", "Male");
profileData.put("description", "Updated description");
profileData.put("hobbies", "Reading, Hiking");
// 模拟服务层的返回
- when(userService.editProfile(userId, "https://example.com/avatar.jpg", "newNickname", "Male", "Updated description", "Reading, Hiking"))
+ when(userService.editProfile(userId, "newNickname", "Male", "Updated description", "Reading, Hiking"))
.thenReturn(true);
// 调用控制器方法
@@ -203,7 +203,7 @@
assertEquals("用户资料更新成功", resultMap.get("message"));
// 验证服务层方法是否被调用
- verify(userService, times(1)).editProfile(userId, "https://example.com/avatar.jpg", "newNickname", "Male", "Updated description", "Reading, Hiking");
+ verify(userService, times(1)).editProfile(userId, "newNickname", "Male", "Updated description", "Reading, Hiking");
}
@Test
@@ -231,4 +231,37 @@
assertEquals(expectedResponse, result);
verify(userService, times(1)).calculateShareRate(userId); // 验证服务方法是否被调用
}
+
+ @Test
+ void testUploadUserAvatar() throws Exception {
+ Long userId = 1L;
+
+ // 构造 Mock 文件
+ MockMultipartFile mockFile = new MockMultipartFile(
+ "file",
+ "avatar.jpg",
+ "image/jpeg",
+ "fake image content".getBytes()
+ );
+
+ // 构造返回值
+ Map<String, Object> mockResponse = new HashMap<>();
+ mockResponse.put("status", "success");
+ mockResponse.put("message", "头像上传成功");
+ mockResponse.put("userId", userId);
+ mockResponse.put("avatarUrl", "/uploads/avatarUrl/1.jpg");
+
+ when(userService.uploadUserAvatar(userId, mockFile)).thenReturn(mockResponse);
+
+ Map<String, Object> resultMap = userController.uploadAvatar(userId, mockFile);
+ assertEquals("success", resultMap.get("status"));
+ assertEquals("头像上传成功", resultMap.get("message"));
+ assertEquals(userId, resultMap.get("userId"));
+ assertEquals("/uploads/avatarUrl/1.jpg", resultMap.get("avatarUrl"));
+
+ // 验证 service 被调用一次
+ verify(userService, times(1)).uploadUserAvatar(userId, mockFile);
+ }
+
+
}