Post

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.