TDD 연습 프로젝트 6 - 멤버십 상세 조회 (Repository, Service, Controller)

zunzero·2022년 9월 10일
0

스프링, JPA

목록 보기
14/23

나의 멤버십 상세 조회 API

요구사항

  • 나의 멤버십 상세 조회 API
    - 기능: 나의 1개 멤버십을 상세 조회한다.
    • 요청: 사용자 식별값, 멤버십 ID
    • 응답: 멤버십 ID, 멤버십 이름, 포인트, 가입일시

Repository 계층 개발

멤버십 상세 조회를 위해 레포지토리 계층에 따로 추가할 코드는 없다.
왜냐하면 멤버십 등록 API를 구현하면서 중복검사를 위해 이미 조회하는 코드를 개발하였기 때문이다.

Membership findByUserIdAndMembershipType(String userId, MembershipType membershipType);

Service 계층 개발

서비스 계층에서 테스트할 케이스는 3가지이다.
멤버십이 존재하지 않아서 조회에 실패하는 경우, 본인의 멤버십이 아닌 경우, 멤버십이 존재하여 조회에 성공하는 경우

각각의 경우에 대한 테스트 코드를 위와 같이 작성해보았다.
컴파일 에러 수정을 위해 프로덕션 코드들을 아래와 같이 수정한다.

수정 후, 컴파일 에러는 고쳐졌지만, getMembership에 대한 구현이 완료되지 않았기 때문에 테스트는 실패한다.
구현은 다음과 같다.

테스트는 모두 성공적이다.

Controller 계층 개발

Controller에서 테스트할 케이스는 총 3가지이다.
사용자 식별 헤더가 없는 경우 400에러, 등록된 멤버십이 존재하지 않는 경우 404에러, 그리고 멤버십 조회에서 성공하는 경우이다.

각각의 테스트 코드는 다음과 같고, 아직 개발되지 않은 API url이 있기 때문에 404에러가 뜨는 테스트가 생긴다.
Controller API를 다음과 같이 수정해주면 테스트는 성공!

profile
나만 읽을 수 있는 블로그

0개의 댓글