blob: e877de8689b3b818a113f3abe12e22cb0620af11 [file] [log] [blame]
Your Name292c25d2025-05-25 01:21:44 +08001package edu.bjtu.groupone.backend;
2
22301014f3cf5d52025-05-29 16:19:04 +08003import edu.bjtu.groupone.backend.domain.entity.User;
晓瑞2231b422362025-06-04 01:09:31 +08004import edu.bjtu.groupone.backend.mapper.UserMapper;
5import edu.bjtu.groupone.backend.service.impl.UserServImpl;
Your Name292c25d2025-05-25 01:21:44 +08006import org.junit.jupiter.api.BeforeEach;
7import org.junit.jupiter.api.Test;
8import org.junit.jupiter.api.extension.ExtendWith;
9import org.mockito.InjectMocks;
10import org.mockito.Mock;
11import org.mockito.junit.jupiter.MockitoExtension;
12
晓瑞2231b422362025-06-04 01:09:31 +080013import java.util.Arrays;
14import java.util.List;
Your Name292c25d2025-05-25 01:21:44 +080015
晓瑞2231b422362025-06-04 01:09:31 +080016import static org.junit.jupiter.api.Assertions.*;
17import static org.mockito.ArgumentMatchers.any;
18import static org.mockito.ArgumentMatchers.anyInt;
Your Name292c25d2025-05-25 01:21:44 +080019import static org.mockito.Mockito.*;
20
Your Name292c25d2025-05-25 01:21:44 +080021@ExtendWith(MockitoExtension.class)
晓瑞2231b422362025-06-04 01:09:31 +080022class UserServiceImplTest {
Your Name292c25d2025-05-25 01:21:44 +080023
24 @Mock
25 private UserMapper userMapper;
26
Your Name292c25d2025-05-25 01:21:44 +080027 @InjectMocks
28 private UserServImpl userService;
29
晓瑞2231b422362025-06-04 01:09:31 +080030 private User testUser;
31
Your Name292c25d2025-05-25 01:21:44 +080032 @BeforeEach
晓瑞2231b422362025-06-04 01:09:31 +080033 void setUp() {
34 testUser = new User();
35 testUser.setUserId(1);
36 testUser.setUsername("testuser");
37 testUser.setEmail("test@example.com");
Your Name292c25d2025-05-25 01:21:44 +080038 }
39
40 @Test
晓瑞2231b422362025-06-04 01:09:31 +080041 void deleteUser_shouldCallMapper() {
42 // 模拟
43 when(userMapper.deleteUser(1)).thenReturn(1);
Your Name292c25d2025-05-25 01:21:44 +080044
晓瑞2231b422362025-06-04 01:09:31 +080045 // 调用
46 userService.deleteUser(1);
47
48 // 验证
49 verify(userMapper, times(1)).deleteUser(1);
Your Name292c25d2025-05-25 01:21:44 +080050 }
51
52 @Test
晓瑞2231b422362025-06-04 01:09:31 +080053 void updateUser_shouldCallMapper() {
54 // 模拟
55 when(userMapper.updateUser(any(User.class))).thenReturn(1);
Your Name292c25d2025-05-25 01:21:44 +080056
晓瑞2231b422362025-06-04 01:09:31 +080057 // 调用
58 userService.updateUser(testUser);
Your Name292c25d2025-05-25 01:21:44 +080059
晓瑞2231b422362025-06-04 01:09:31 +080060 // 验证
61 verify(userMapper, times(1)).updateUser(any(User.class));
Your Name292c25d2025-05-25 01:21:44 +080062 }
63
64 @Test
晓瑞2231b422362025-06-04 01:09:31 +080065 void getUserById_shouldReturnUser() {
66 // 模拟
67 when(userMapper.selectUserById(1)).thenReturn(testUser);
Your Name292c25d2025-05-25 01:21:44 +080068
晓瑞2231b422362025-06-04 01:09:31 +080069 // 调用
70 User result = userService.getUserById(1);
Your Name292c25d2025-05-25 01:21:44 +080071
晓瑞2231b422362025-06-04 01:09:31 +080072 // 验证
73 assertEquals(testUser, result);
74 verify(userMapper, times(1)).selectUserById(1);
Your Name292c25d2025-05-25 01:21:44 +080075 }
76
晓瑞2231b422362025-06-04 01:09:31 +080077 @Test
78 void getAllUsers_shouldReturnList() {
79 // 模拟
80 List<User> users = Arrays.asList(testUser, new User());
81 when(userMapper.selectAllUsers()).thenReturn(users);
Your Name292c25d2025-05-25 01:21:44 +080082
晓瑞2231b422362025-06-04 01:09:31 +080083 // 调用
84 List<User> result = userService.getAllUsers();
Your Name292c25d2025-05-25 01:21:44 +080085
晓瑞2231b422362025-06-04 01:09:31 +080086 // 验证
87 assertEquals(2, result.size());
88 verify(userMapper, times(1)).selectAllUsers();
Your Name292c25d2025-05-25 01:21:44 +080089 }
晓瑞2231b422362025-06-04 01:09:31 +080090}