📌 Spring
💡 아웃소싱 프로젝트: 프로필 Service 단위테스트
이전에 구현했던 프로필 단위테스트 작성을 하려고 한다. 아직 테스트코드 작성에 서툴기 때문에 익숙해지기 위해서 계속해서 작성해보려고 노력해야할 것 같다.
@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를 만들어주고
// 사용자 프로필 조회
public UserResponseDto getUser(Long userSeq) {
User user = findByUserSeq(userSeq);
return new UserResponseDto(user);
}
프로필 조회 service 단위테스틀 먼저 해보려고 한다.
@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());
}