TIL(20240623) [아웃소싱 프로젝트: 단위테스트]
TIL(20240623) [아웃소싱 프로젝트: 단위테스트]
📌 Spring
💡 아웃소싱 프로젝트: 프로필 Service 단위테스트
이전에 구현했던 프로필 단위테스트 작성을 하려고 한다. 아직 테스트코드 작성에 서툴기 때문에 익숙해지기 위해서 계속해서 작성해보려고 노력해야할 것 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@InjectMocks
private UserService userService;
@Mock
private PasswordEncoder passwordEncoder;
@Mock
private UserRepository userRepository;
@Mock
private PasswordHistoryRepository passwordHistoryRepository;
private User testUser;
@BeforeAll
public void setUpTestUser() {
testUser = User.builder()
.userId("test12345")
.userName("테스트유저")
.userPassword(passwordEncoder.encode("@test12345"))
.userEmail("test@gmail.com")
.description("한줄소개")
.authority(UserRoleEnum.USER)
.build();
userRepository.save(testUser);
}
}
먼저 setUpTestUser를 만들어주고
1
2
3
4
5
// 사용자 프로필 조회
public UserResponseDto getUser(Long userSeq) {
User user = findByUserSeq(userSeq);
return new UserResponseDto(user);
}
프로필 조회 service 단위테스틀 먼저 해보려고 한다.
1
2
3
4
5
6
7
8
9
10
11
12
@Test
@DisplayName("프로필 조회")
void getUser() {
// given
given(userRepository.findById(anyLong())).willReturn(Optional.of(testUser));
// when
UserResponseDto responseDto = userService.getUser(1L);
//then
assertEquals(testUser.getUserId(), responseDto.getUserId());
}
This post is licensed under CC BY 4.0 by the author.