일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |
- 내일배움캠프
- 중심사회
- 개인공부
- 프로그래머스
- Flutter
- 개발자스터디
- 99클럽
- Python
- 항해
- 자바
- 백준
- 부트캠프
- 스파르타내일배움캠프WIL
- til
- 스파르타내일배움캠프
- 컴퓨터구조론 5판
- 컴퓨터개론
- 스파르타내일배움캠프TIL
- 운영체제
- MySQL
- AWS
- 99일지
- wil
- 개발자블로그
- 국비
- 스파르타코딩클럽
- java
- 코딩테스트
- 소프트웨어
- Spring
- Today
- Total
컴공생의 발자취
디버그 본문
2024.07.04.(목)
개인과제
오늘은 개인과제를 하며 아래와 같은 문제가 발생했었다.
- Repository 테스트 코드 작성 중에 user의 값이 중복
- 아래의 코드와 같은 부분에서는 값이 null인데 Service 테스트 코드에서는 어떻게 작성해야 하나
튜터님께 질문하면서 디버그를 하는 것을 배웠다.
뭔가 이때까지는 이게 왜 그런 문제가 발생하는지 에러만 보고 디버그를 할 생각을 안하고 있었다.
- Step Over : 다음 줄(같은 함수 내)
- Step Into : 다음 줄(해당 함수에서 사용하는 다른 함수의 로직에서 동작..?)
- Step Out : 이전? -> 정확하지 않음. 안 해봤음.
디버그에서 이런 게 있는지도 모르고 있었다.
그렇게 해서 1번 문제는 DB의 table을 지우고 해결되었으며,
2번 문제는 수정 중.. 1번 하면서 DB 내용 다 지워서 그런건가 현재 추측 중..
추가적으로 알게된거는 any(Long.class)는 anyLong()과 같은 함수라는 것
아래의 코드와 같이 작성된 것은 eq()? 이런 함수를 이용해야 하는 것 -> 정확하지 않음
// given(storeRepository.findById(TEST_STORE_ID)).willReturn(Optional.of(TEST_STORE));
// given(reviewRepository.findById(TEST_REVIEW_ID)).willReturn(Optional.of(TEST_REVIEW));
given(storeRepository.findById(anyLong())).willReturn(Optional.of(TEST_STORE)); // anyLong() == any(Long.class)
given(reviewRepository.findById(anyLong())).willReturn(Optional.of(TEST_REVIEW)); // eq(TEST_STORE_ID) vs anyLong() ?
Repository의 테스트 코드를 작성하면서 CreateAt 이런 컬럼은 생성자로도 넣어줄 수 없고 테스트 코드를 작성하자고 Setter 어노테이션을 다는 것은 매우 비효율적이라 판단하여 질문하였던 것은 주석 처리된 방식도 있고 주석처리되지 않은 방식이 있는데 현재로서는 주석처리되지 않은 것처럼 Mockito.mock를 사용하라고 추천해주셨다.
// 라이브러리 powerMock? setterX 값 세팅 의존성 추가..
// 현재 given when then 활용
Review mock = Mockito.mock(Review.class); // given when then 적용
코드 카타
* 프로그래머스로 진행
- 알고리즘
- 콜라 문제
- SQL
- 자동차 평균 대여 기간 구하기
오늘의 회고
- 12시간 중 얼마나 몰입했는가?
오늘은 7시부터 시작! 물론 오늘도 저녁에 일찍 나가야 해서 7시부터 시작이었다.
피로가 누적되어 제대로 된 집중은 크게 못한 것 같고 테스트 코드 관련해서 튜터님께 질문 갔었던 1시간이 가장 몰입한 시간인 것 같다.
- 오늘의 생각
디버그.. 이런 멋있고 좋은 걸 나는 도대체 무슨 생각으로 사용도 안하고
그냥 에러 코드만 보고 있었던거지... 과거의 나! 반성 중....... 🙇♀️🙇♂️
그리고 내일의 학습도 적고보니 드는 생각은 내 진도가 상당히 느린 것 같다ㅠ
- 내일 학습할 것은 무엇인지
일단 개인과제 수정하던 거 마저 수정하고!
그래서 시간 지나고 다시 생각하니 2번은 우예 해야 하는거지..
내일 오전 회의 후 다른 튜터님께 한 번 더 질문하러 가야겠다.
그러고 repository는 지금 조금 더 하면 될 것도 같고..?
개인과제는 QueryDSL을 위주로 변경하는 게 목표다! 필수는 재제출 때까지 다시 해봐야겠어.
면접 준비는 아직까지 못했다... 더더더 열심히해야되는데ㅜ 열심히 놀았지ㅎ
'🌃 TIL' 카테고리의 다른 글
security 유효성 검사에서 403 error (0) | 2024.07.08 |
---|---|
마지막 개인과제 제출 (0) | 2024.07.07 |
AWS (0) | 2024.07.02 |
AWS 계정 생성 및 IAM (0) | 2024.06.27 |
테스트 활용 과제 재제출 (0) | 2024.06.19 |