blob: 73c99ae802a961169266a9ab4d10c4969473c7fd [file] [log] [blame]
Your Name695f6a62025-05-17 00:58:04 +08001package edu.bjtu.groupone.backend;
2
晓瑞2231b422362025-06-04 01:09:31 +08003import edu.bjtu.groupone.backend.api.UserController;
4import edu.bjtu.groupone.backend.domain.entity.Result;
22301014f3cf5d52025-05-29 16:19:04 +08005import edu.bjtu.groupone.backend.domain.entity.User;
晓瑞2231b422362025-06-04 01:09:31 +08006import edu.bjtu.groupone.backend.service.UserService;
7import org.junit.jupiter.api.BeforeEach;
Your Name695f6a62025-05-17 00:58:04 +08008import org.junit.jupiter.api.Test;
9import org.junit.jupiter.api.extension.ExtendWith;
10import org.mockito.InjectMocks;
11import org.mockito.Mock;
12import org.mockito.junit.jupiter.MockitoExtension;
13
晓瑞2231b422362025-06-04 01:09:31 +080014import java.util.Arrays;
15import java.util.List;
Your Name695f6a62025-05-17 00:58:04 +080016
晓瑞2231b422362025-06-04 01:09:31 +080017import static org.junit.jupiter.api.Assertions.*;
18import static org.mockito.ArgumentMatchers.any;
19import static org.mockito.Mockito.*;
20
21@ExtendWith(MockitoExtension.class)
22class UserControllerTest {
Your Name695f6a62025-05-17 00:58:04 +080023
24 @Mock
晓瑞2231b422362025-06-04 01:09:31 +080025 private UserService userService;
Your Name695f6a62025-05-17 00:58:04 +080026
27 @InjectMocks
晓瑞2231b422362025-06-04 01:09:31 +080028 private UserController userController;
Your Name695f6a62025-05-17 00:58:04 +080029
晓瑞2231b422362025-06-04 01:09:31 +080030 private User testUser;
Your Name4fbe8112025-05-20 23:24:17 +080031
晓瑞2231b422362025-06-04 01:09:31 +080032 @BeforeEach
33 void setUp() {
34 testUser = new User();
35 testUser.setUserId(1);
36 testUser.setUsername("testuser");
37 testUser.setEmail("test@example.com");
Your Name695f6a62025-05-17 00:58:04 +080038 }
39
晓瑞2231b422362025-06-04 01:09:31 +080040 @Test
41 void deleteUser_shouldReturnSuccess() {
42 // 调用
43 Result<String> result = userController.deleteUser(1);
Your Name695f6a62025-05-17 00:58:04 +080044
晓瑞2231b422362025-06-04 01:09:31 +080045 // 验证:修改预期为英文 "success"
46 assertEquals(0, result.getCode());
47 assertEquals("success", result.getMsg()); // 修改这里
48 verify(userService, times(1)).deleteUser(1);
49 }
50
51 @Test
52 void updateUser_shouldReturnSuccess() {
53 // 调用
54 Result<String> result = userController.updateUser(1, testUser);
55
56 // 验证:修改预期为英文 "success"
57 assertEquals(0, result.getCode());
58 assertEquals("success", result.getMsg()); // 修改这里
59 verify(userService, times(1)).updateUser(any(User.class));
60 }
61
62 @Test
63 void getUser_shouldReturnUser() {
64 // 模拟
65 when(userService.getUserById(1)).thenReturn(testUser);
66
67 // 调用
68 Result<User> result = userController.getUser(1);
69
70 // 验证
71 assertEquals(0, result.getCode());
72 assertEquals(testUser, result.getData());
73 verify(userService, times(1)).getUserById(1);
74 }
75
76 @Test
77 void getAllUsers_shouldReturnUserList() {
78 // 模拟
79 List<User> users = Arrays.asList(testUser, new User());
80 when(userService.getAllUsers()).thenReturn(users);
81
82 // 调用
83 Result<List<User>> result = userController.getAllUsers();
84
85 // 验证
86 assertEquals(0, result.getCode());
87 assertEquals(2, result.getData().size());
88 verify(userService, times(1)).getAllUsers();
89 }
90}