ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [내일배움캠프] 2월 22일 수요일 TIL 회고록
    카테고리 없음 2023. 2. 22. 23:05

    오늘 한 것 : 테스트 코드 작성

     

    Mockito를 사용하여 강의자료에 있는 영상을 보며 따라 만들었는데 전부 실패가 나온다..ㅠㅠ

     

    유저가 쓴 댓글 전체 조회 테스트 코드를 만들어보았는데 익셉션이 뜨면서 실패가 된다..

    몇시간동안 고쳐봤는데 도저히 답이 없다..

    @Test
    void getMyComments() {
      // given
      CommentList commentList = new CommentList();
      Long userId = 1L;
      User user = new User("user2", passwordEncoder.encode("pass12!@"),
          "nickname2", "aa@b.com");
      when(commentRepository.findAllByUserId(commentList.toPageable(), user.getId())).thenReturn(
          Page.empty());
      // when
      Page<CommentResponse> responses = commentService.getMyComments(commentList, userId, user);
      // then
      assertThat(responses).isEmpty();
    
      // verify
      verify(commentRepository).findAllByUserId(commentList.toPageable(), user.getId());
    }

     

    또 질문 댓글 수정하는 기능도 테스트 코드를 만들어 보았는데 이거도 오류가 뜨면서 안된다.

    각종 오류들이 다나와서 파파고로 변역해보면서 고쳐봤는데 쉽지 않다.. 이거만 6시간 수정한 것 같다..

    @Test
    void updateQuestionComment() {
      // given
      CommentRequest commentRequest = CommentRequest.builder()
          .content("댓글수정")
          .build();
      User user = new User("user2", passwordEncoder.encode("pass12!@"),
          "nickname2", "aa@b.com");
      Long questionBoardId = 1L;
      Long userId = 2L;
      Comment comment = new Comment(user, commentRequest, questionBoardId);
      commentRepository.save(comment);
      when(commentRepository.findById(anyLong())).thenReturn(Optional.of(comment));
      when(userService.getProfile(anyLong())).thenReturn(isNotNull());
      when(commentRepository.findByUserId(userId)).thenReturn(Optional.of(comment));
    
      // when
      commentService.getNicknameByComment(comment);
      commentService.updateQuestionComment(anyLong(), commentRequest, user);
    
      // then
      verify(commentRepository, times(1)).save(any(Comment.class));
    }

    진짜 미쳐버릴거같다 ㅋㅋㅋㅋ 테스트코드 작성하기 너무 힘들다... 너무 지친다.. 내일 이어서 고쳐봐야겠다..

Designed by Tistory.