用户类完善 商城功能
Change-Id: I2fa4cecee4203114998d7f9f24e956660a2da5ec
diff --git a/src/test/java/com/pt5/pthouduan/ControllerTest/UserControllerTest.java b/src/test/java/com/pt5/pthouduan/ControllerTest/UserControllerTest.java
index 00c8354..18707e2 100644
--- a/src/test/java/com/pt5/pthouduan/ControllerTest/UserControllerTest.java
+++ b/src/test/java/com/pt5/pthouduan/ControllerTest/UserControllerTest.java
@@ -1,5 +1,4 @@
package com.pt5.pthouduan.ControllerTest;
-
import com.pt5.pthouduan.controller.UserController;
import com.pt5.pthouduan.entity.User;
import com.pt5.pthouduan.service.UserService;
@@ -14,7 +13,8 @@
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.*;
class UserControllerTest {
@@ -30,193 +30,103 @@
MockitoAnnotations.openMocks(this);
}
- // 注册测试
+ // 测试注册功能
@Test
- void register_ShouldCallServiceWithCorrectParameters() {
- // 准备测试数据
- User testUser = new User(1L,"");
- testUser.setUsername("testUser");
- String testCode = "123456";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("success", true);
- expectedResponse.put("message", "注册成功");
+ void register_ShouldReturnSuccess() {
+ User user = new User(0L,"1");
+ user.setUsername("testUser");
+ Map<String, Object> expected = new HashMap<>();
+ expected.put("status", "success");
- // 模拟服务行为
- when(userService.register(any(User.class), anyString())).thenReturn(expectedResponse);
+ when(userService.register(any(User.class), anyString(), anyString()))
+ .thenReturn(expected);
- // 执行测试
- Map<String, Object> actualResponse = userController.register(testUser, testCode);
+ Map<String, Object> result = userController.register(user, "INVITE123", "EMAIL456");
- // 验证行为
- verify(userService, times(1)).register(testUser, testCode);
-
- // 验证结果
- assertEquals(expectedResponse, actualResponse);
+ assertEquals(expected, result);
+ verify(userService, times(1)).register(any(), anyString(), anyString());
}
- // 登录测试
+ // 测试登录功能
@Test
- void login_ShouldReturnSuccessWhenCredentialsAreValid() {
- // 准备测试数据
- String username = "testUser";
- String password = "correctPassword";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("success", true);
- expectedResponse.put("token", "sampleToken");
+ void login_ShouldReturnToken() {
+ Map<String, Object> expected = new HashMap<>();
+ expected.put("token", "mockToken123");
- // 模拟服务行为
- when(userService.login(eq(username), eq(password))).thenReturn(expectedResponse);
+ when(userService.login("testUser", "password123"))
+ .thenReturn(expected);
- // 执行测试
- Map<String, Object> actualResponse = userController.login(username, password);
+ Map<String, Object> result = userController.login("testUser", "password123");
- // 验证行为
- verify(userService, times(1)).login(username, password);
-
- // 验证结果
- assertEquals(expectedResponse, actualResponse);
- assertTrue((Boolean) actualResponse.get("success"));
- assertNotNull(actualResponse.get("token"));
+ assertEquals(expected, result);
+ assertNotNull(result.get("token"));
}
- // 计算等级测试
+ // 测试获取用户信息
@Test
- void calgrade_ShouldReturnUserGrade() {
- // 准备测试数据
- String username = "testUser";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("grade", 5);
- expectedResponse.put("exp", 1200);
+ void getUserInfo_ShouldReturnUserData() {
+ Map<String, Object> expected = new HashMap<>();
+ expected.put("username", "testUser");
+ expected.put("email", "test@example.com");
- // 模拟服务行为
- when(userService.CalGrade(eq(username))).thenReturn(expectedResponse);
+ when(userService.UserInfo("testUser"))
+ .thenReturn(expected);
- // 执行测试
- Map<String, Object> actualResponse = userController.calgrade(username);
+ Map<String, Object> result = userController.getuser("testUser");
- // 验证行为
- verify(userService, times(1)).CalGrade(username);
-
- // 验证结果
- assertEquals(5, actualResponse.get("grade"));
- assertEquals(1200, actualResponse.get("exp"));
+ assertEquals("testUser", result.get("username"));
+ assertEquals("test@example.com", result.get("email"));
}
- // 修改性别测试
+ // 测试修改密码
@Test
- void changesex_ShouldUpdateUserSex() {
- // 准备测试数据
- String username = "testUser";
- String newSex = "male";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("success", true);
- expectedResponse.put("message", "性别更新成功");
+ void changePassword_ShouldHandleSuccess() {
+ Map<String, Object> expected = new HashMap<>();
+ expected.put("message", "Password updated");
- // 模拟服务行为
- when(userService.changesex(eq(username), eq(newSex))).thenReturn(expectedResponse);
+ when(userService.changePassword("testUser", "oldPass", "newPass"))
+ .thenReturn(expected);
- // 执行测试
- Map<String, Object> actualResponse = userController.changsex(username, newSex);
+ Map<String, Object> result = userController.changePassword(
+ "testUser", "oldPass", "newPass");
- // 验证行为
- verify(userService, times(1)).changesex(username, newSex);
-
- // 验证结果
- assertTrue((Boolean) actualResponse.get("success"));
- assertEquals("性别更新成功", actualResponse.get("message"));
+ assertEquals("Password updated", result.get("message"));
}
- // 修改头像测试
+ // 测试异常情况
@Test
- void changeimage_ShouldUpdateUserImage() {
- // 准备测试数据
- String username = "testUser";
- String newImage = "newImageUrl";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("success", true);
- expectedResponse.put("message", "头像更新成功");
+ void login_ShouldHandleFailure() {
+ when(userService.login("wrongUser", "wrongPass"))
+ .thenThrow(new RuntimeException("Invalid credentials"));
- // 模拟服务行为
- when(userService.changeImage(eq(username), eq(newImage))).thenReturn(expectedResponse);
-
- // 执行测试
- Map<String, Object> actualResponse = userController.changeimage(username, newImage);
-
- // 验证行为
- verify(userService, times(1)).changeImage(username, newImage);
-
- // 验证结果
- assertTrue((Boolean) actualResponse.get("success"));
- assertEquals("头像更新成功", actualResponse.get("message"));
+ assertThrows(RuntimeException.class, () -> {
+ userController.login("wrongUser", "wrongPass");
+ });
}
- // 修改密码测试
+ // 测试空参数情况
@Test
- void changePassword_ShouldReturnSuccessWhenOldPasswordIsCorrect() {
- // 准备测试数据
- String username = "testUser";
- String oldPassword = "correctOldPassword";
- String newPassword = "newSecurePassword";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("success", true);
- expectedResponse.put("message", "密码修改成功");
+ void getUserInfo_ShouldHandleNullUsername() {
+ when(userService.UserInfo(null))
+ .thenReturn(Map.of("error", "Username required"));
- // 模拟服务行为
- when(userService.changePassword(eq(username), eq(oldPassword), eq(newPassword)))
- .thenReturn(expectedResponse);
+ Map<String, Object> result = userController.getuser(null);
- // 执行测试
- Map<String, Object> actualResponse = userController.changePassword(username, oldPassword, newPassword);
-
- // 验证行为
- verify(userService, times(1)).changePassword(username, oldPassword, newPassword);
-
- // 验证结果
- assertTrue((Boolean) actualResponse.get("success"));
- assertEquals("密码修改成功", actualResponse.get("message"));
+ assertEquals("Username required", result.get("error"));
}
- // 获取用户信息测试
+ // 测试创建用户
@Test
- void getUserInfo_ShouldReturnUserInfo() {
- // 准备测试数据
- String username = "testUser";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("username", username);
- expectedResponse.put("email", "test@example.com");
+ void createUser_ShouldReturnUserId() {
+ User newUser = new User(0L,"1");
+ newUser.setUsername("newUser");
+ Map<String, Object> expected = Map.of("userId", 123);
- // 模拟服务行为
- when(userService.login(eq(username), eq(""))).thenReturn(expectedResponse);
+ when(userService.CreateUser(any(User.class)))
+ .thenReturn(expected);
- // 执行测试
- Map<String, Object> actualResponse = userController.getUserInfo(username);
+ Map<String, Object> result = userController.creatUser(newUser);
- // 验证行为
- verify(userService, times(1)).login(username, "");
-
- // 验证结果
- assertEquals(username, actualResponse.get("username"));
- assertEquals("test@example.com", actualResponse.get("email"));
- }
-
- // 异常情况测试
- @Test
- void login_ShouldReturnFailureWhenCredentialsAreInvalid() {
- // 准备测试数据
- String username = "testUser";
- String wrongPassword = "wrongPassword";
- Map<String, Object> expectedResponse = new HashMap<>();
- expectedResponse.put("success", false);
- expectedResponse.put("message", "用户名或密码错误");
-
- // 模拟服务行为
- when(userService.login(eq(username), eq(wrongPassword))).thenReturn(expectedResponse);
-
- // 执行测试
- Map<String, Object> actualResponse = userController.login(username, wrongPassword);
-
- // 验证结果
- assertFalse((Boolean) actualResponse.get("success"));
- assertEquals("用户名或密码错误", actualResponse.get("message"));
+ assertEquals(123, result.get("userId"));
}
}