[TIL] Today I Lerned - 230109

2023. 1. 9. 22:26기록/TIL

[TIL] Today I Lerned - 230109

 

230109 기록

 

SQL

[SQL] WHERE / HAVING (tistory.com)

 

[SQL] WHERE / HAVING

[SQL] WHERE / HAVING 원하는 데이터의 조건에 맞춰서 해당 데이터를 꺼내올 때 사용하는 것이 바로 SQL이다. 이때 SQL에서 조건문은 두 가지가 존재한다. 바로 Where과 Having이다. 수업을 듣고 찾아오면서

skyriv312079.tistory.com

 

Test

 

사용 계기 

  • Spring Rest Docs를 사용하기 위해서는 작성이 된 테스트 코드들만 문서화를 시키기에 도전
  • 기존의 service 코드의 경우 작성하는 법을 알았지만 다른 부분들의 코드를 작성해보기로 도전

겪은 점

  • controller 
    • MockMvc를 사용하여 테스트 코드 작성
    • 다만 통합 테스트를 생각하면서 service 값을 호출해야 하나 고민과 시간을 들임
    • 결론 
      • MockMvc로 해당 값을 예상하면서 Service 단의 assertion의 역할처럼 andExpect()를 사용해서 결괏값 확인
  • Reposiotry
    • userRepository를 기능을 생각하며 
    • //given : 목표한 데이터 객체값을 생성 / 저장
    • //when : 테스트하고자 하는 쿼리 메서드 실행
    • //then : given에서 주어진 값과 when에서 가져온 값을 비교하여 결과값 출력
  • controller는 코드를 작성하다가 삭제를 하고 느낀점만 기록
  • 내일 controller를 작성하고 해당 부분을 Spring Rest Docs로 생성 예정
@DataJpaTest
class UserRepositoryTest {

    @Autowired // final은 Autowired 불가, mock은 when으로 값을 지정하기에 사용 x
    private UserRepository userRepository;

    @Test
    void findByUsername() {

        //given
        User user = User.builder().username("user1").password("1111").userRoleEnum(UserRoleEnum.USER).build();
        userRepository.save(user);
        //when
        User user1 = userRepository.findByUsername(user.getUsername()).orElseThrow(() -> new IllegalArgumentException("존재하지않는 사용자입니다"));
        //then
        Assertions.assertThat(user1).isEqualTo(user);
        Assertions.assertThat(user1.getUsername()).isEqualTo(user.getUsername());
    
    }
}

 

 

'기록 > TIL' 카테고리의 다른 글

[TIL] Today I Lerned - 230111  (0) 2023.01.11
[TIL] Today I Lerned - 230110  (0) 2023.01.10
[TIL] Today I Lerned - 230106  (0) 2023.01.06
[TIL] Today I Lerned - 230105  (0) 2023.01.06
[TIL] Today I Lerned - 230104  (0) 2023.01.04