멤버십 상세 조회를 위해 레포지토리 계층에 따로 추가할 코드는 없다.
왜냐하면 멤버십 등록 API를 구현하면서 중복검사를 위해 이미 조회하는 코드를 개발하였기 때문이다.
Membership findByUserIdAndMembershipType(String userId, MembershipType membershipType);
서비스 계층에서 테스트할 케이스는 3가지이다.
멤버십이 존재하지 않아서 조회에 실패하는 경우, 본인의 멤버십이 아닌 경우, 멤버십이 존재하여 조회에 성공하는 경우
각각의 경우에 대한 테스트 코드를 위와 같이 작성해보았다.
컴파일 에러 수정을 위해 프로덕션 코드들을 아래와 같이 수정한다.
수정 후, 컴파일 에러는 고쳐졌지만, getMembership에 대한 구현이 완료되지 않았기 때문에 테스트는 실패한다.
구현은 다음과 같다.
테스트는 모두 성공적이다.
Controller에서 테스트할 케이스는 총 3가지이다.
사용자 식별 헤더가 없는 경우 400에러, 등록된 멤버십이 존재하지 않는 경우 404에러, 그리고 멤버십 조회에서 성공하는 경우이다.
각각의 테스트 코드는 다음과 같고, 아직 개발되지 않은 API url이 있기 때문에 404에러가 뜨는 테스트가 생긴다.
Controller API를 다음과 같이 수정해주면 테스트는 성공!