Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#68]Argument Resolver 리팩토링/Jacoco Report 설정/테스트커버리지80%달정 #69

Merged
merged 23 commits into from
Apr 1, 2024

Conversation

hoa0217
Copy link
Collaborator

@hoa0217 hoa0217 commented Apr 1, 2024

개요

  • LoginMemberArgumentResolver 리팩토링
  • Jacoco Report to PR 설정 및 Jacoco Report와 동일한 Instruction로 limit counter 기준 변경
  • 테스트 커버리지 80% 달성

작업사항

  • LoginMemberArgumentResolver Session을 주입받는 대신 파라미터로 제공되는 webRequest를 이용하여 세션에 접근하도록 수정
  • Jacoco Report to PR 설정 (참고: https://github.com/Madrapps/jacoco-report?tab=readme-ov-file)
  • 비지니스 로직 관련된 클래스 테스트 커버리지 80% 달성(레포트는 제외 클래스 지정이 불가능하므로 커버리지 비율 75로 조정)
    • excludes class : [*.*Application', '*.*Controller', '*.dto.*', '*.config.*', '*.common.*', '*.domain.Q*', '*.*Builder']
  • 테스트코드 리팩토링을 진행하며, 예약 검색 구현(관리자, 호스트, 방문자별로 api 분리 및 공통 쿼리 작성)

변경로직

  • 원래는 findAll로 예약 검색을 구현했으며, 권한별로 쿼리를 따로 작성하였지만 이를 통합한 후 List ➡️ Page로 조회하도록 변경

이슈사항

  • 문제: 검색 쿼리 구현 시, hostId 비교가 필요하여 reservation.facility.space.host.id로 접근하였으나 host에 NPE가 발생함.
  • 원인: QueryDsl은 객체그래프가 4개이상 넘어가면 NPE가 발생한다.
  • 해결: 객체그래프 탐색에서 inner join으로 변경

출처 : https://www.sunny-son.space/spring/QueryDsl%EC%9D%98%20NPE%20%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0%20+%20Cross%20Join/

hoa0217 added 23 commits March 28, 2024 00:42
- request 파라미터에서 Session을 직접 가져오는 방법으로 변경

Related: #64
- PR 생성 시 빌드된 레포트를 PR에 가시적으로 보여줌.

Related: #64
- 블로그 글 추가

Related: #64
Jacoco Report to PR 시 Instruction 기준으로 체크되므로 변경

Related: #64
- 비지니스로직이 아닌 클래스 테스트커버리지 체크에서 제외한다.

Related: #64
- 비지니스로직이 아닌 클래스 테스트커버리지 체크에서 제외한다.

Related: #68
- 문제: QueryDsl은 객체그래프가 4개이상 넘어가면 NPE가 발생한다.
  hostId 비교시, `reservation.facility.space.host.id`로 접근하여 host에 NPE가 발생함
- 해결: inner join
- 출처 : https://www.sunny-son.space/spring/QueryDsl%EC%9D%98%20NPE%20%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0%20+%20Cross%20Join/

Related: #68
- report는 exclude class 지정이 불가능하기 때문에, 해당 부분을 감안하여 커버리지 비율 조정

Related: #68
@hoa0217 hoa0217 self-assigned this Apr 1, 2024
Copy link

github-actions bot commented Apr 1, 2024

⭐️Code Coverage

Overall Project 76.95% -2.38% 🍏
Files changed 67.25%

File Coverage
FacilitySearchRequest.java 100% 🍏
ReservationStatus.java 100% 🍏
CachePrefixEvictAdvisor.java 100% 🍏
SecurityConfiguration.java 100% 🍏
FacilityService.java 95.38% 🍏
ReservationService.java 95.12% 🍏
ReservationQueryRepository.java 93.08% -6.92% 🍏
Space.java 88.83% 🍏
Reservation.java 85.96% 🍏
AlarmService.java 83.97% 🍏
SpaceDetailResponse.java 81.58% -1.97% 🍏
ReservationResponse.java 81.18% 🍏
AvailabilityTimeResponse.java 80% -20%
FacilityDetailResponse.java 76.4% -23.6% 🍏
FacilityResponse.java 71.01% -2.9% 🍏
VisitorSearchRequest.java 60% -40%
SpaceSearchRequest.java 57.14% -11.9%
CommonSearchRequest.java 53.97% -46.03%
HostSearchRequest.java 50% -50%
AdminSearchRequest.java 47.37% -52.63%
AdminReservationController.java 16.67% -47.22%
HostReservationController.java 13.64% -38.64%
LoginMemberArgumentResolver.java 13.64% -45.45%
VisitorsReservationController.java 10.71% -53.57%
FacilityController.java 9.09% -31.82%
SpaceController.java 8.7% 🍏
ScheduleController.java 7.59% 🍏

@hoa0217 hoa0217 merged commit 82b3e7d into develop Apr 1, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant