Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 1 | package edu.bjtu.groupone.backend; |
| 2 | |
22301014 | f3cf5d5 | 2025-05-29 16:19:04 +0800 | [diff] [blame] | 3 | import edu.bjtu.groupone.backend.domain.entity.User; |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 4 | import edu.bjtu.groupone.backend.mapper.UserMapper; |
| 5 | import edu.bjtu.groupone.backend.service.impl.UserServImpl; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 6 | import org.junit.jupiter.api.BeforeEach; |
| 7 | import org.junit.jupiter.api.Test; |
| 8 | import org.junit.jupiter.api.extension.ExtendWith; |
| 9 | import org.mockito.InjectMocks; |
| 10 | import org.mockito.Mock; |
| 11 | import org.mockito.junit.jupiter.MockitoExtension; |
| 12 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 13 | import java.util.Arrays; |
| 14 | import java.util.List; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 15 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 16 | import static org.junit.jupiter.api.Assertions.*; |
| 17 | import static org.mockito.ArgumentMatchers.any; |
| 18 | import static org.mockito.ArgumentMatchers.anyInt; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 19 | import static org.mockito.Mockito.*; |
| 20 | |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 21 | @ExtendWith(MockitoExtension.class) |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 22 | class UserServiceImplTest { |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 23 | |
| 24 | @Mock |
| 25 | private UserMapper userMapper; |
| 26 | |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 27 | @InjectMocks |
| 28 | private UserServImpl userService; |
| 29 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 30 | private User testUser; |
| 31 | |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 32 | @BeforeEach |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 33 | void setUp() { |
| 34 | testUser = new User(); |
| 35 | testUser.setUserId(1); |
| 36 | testUser.setUsername("testuser"); |
| 37 | testUser.setEmail("test@example.com"); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 38 | } |
| 39 | |
| 40 | @Test |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 41 | void deleteUser_shouldCallMapper() { |
| 42 | // 模拟 |
| 43 | when(userMapper.deleteUser(1)).thenReturn(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 44 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 45 | // 调用 |
| 46 | userService.deleteUser(1); |
| 47 | |
| 48 | // 验证 |
| 49 | verify(userMapper, times(1)).deleteUser(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 50 | } |
| 51 | |
| 52 | @Test |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 53 | void updateUser_shouldCallMapper() { |
| 54 | // 模拟 |
| 55 | when(userMapper.updateUser(any(User.class))).thenReturn(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 56 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 57 | // 调用 |
| 58 | userService.updateUser(testUser); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 59 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 60 | // 验证 |
| 61 | verify(userMapper, times(1)).updateUser(any(User.class)); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 62 | } |
| 63 | |
| 64 | @Test |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 65 | void getUserById_shouldReturnUser() { |
| 66 | // 模拟 |
| 67 | when(userMapper.selectUserById(1)).thenReturn(testUser); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 68 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 69 | // 调用 |
| 70 | User result = userService.getUserById(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 71 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 72 | // 验证 |
| 73 | assertEquals(testUser, result); |
| 74 | verify(userMapper, times(1)).selectUserById(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 75 | } |
| 76 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 77 | @Test |
| 78 | void getAllUsers_shouldReturnList() { |
| 79 | // 模拟 |
| 80 | List<User> users = Arrays.asList(testUser, new User()); |
| 81 | when(userMapper.selectAllUsers()).thenReturn(users); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 82 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 83 | // 调用 |
| 84 | List<User> result = userService.getAllUsers(); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 85 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 86 | // 验证 |
| 87 | assertEquals(2, result.size()); |
| 88 | verify(userMapper, times(1)).selectAllUsers(); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 89 | } |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 90 | } |