TDD 연습 프로젝트 9 - 멤버 등록(회원가입)

zunzero·2022년 9월 17일
0

스프링, JPA

목록 보기
17/23

이전까지 글은 망나니 개발자님의 TDD 글을 참고하여 작성한 글이고, 지금부터는 그 프로젝트에서 내가 점점 추가하고 싶은 기능들을 추가하며 진행할 계획이다.

멤버 등록 API

요구사항

  • 멤버 등록 API
    - 기능: 멤버 회원가입을 진행한다.
    • 요청: 멤버 이름, 멤버 Email, 멤버 비밀번호
    • 응답: 멤버 id

글을 작성함에 앞서, 이미 개발을 끝내놓고 작성하는 글이기 때문에 컴파일 오류가 본문에선 발견되지 않음을 미리 공지한다.

Repository 계층 개발

우선 멤버가 등록되는 경우와, 이미 존재하는 멤버가 있는 경우에 대한 테스트를 진행하겠다.
이미 존재하는 멤버가 있는 경우는 후에 중복검사 등에서 쓰이기 때문이다. (중복검사는 Email에 대해 검사한다.)

findByEmail 메서드를 만들어주면 테스트는 모두 통과하게 된다.

Serivce 계층 개발

서비스 계층에서 테스트할 케이스는, 이미 이메일이 존재하여 중복으로 인해 등록을 실패하는 경우와 등록에 성공하는 경우, 두가지가 있다.

다음 두가지에 대한 테스트를 작성했고, 우리는 MemberException 클래스, MemberErrorResult와 MemberService 클래스, 그리고 그 안에 addMember 메서드를 작성해야 함을 알 수 있다.
각각에 대한 구현은 아래와 같다.

Controller 계층 개발

멤버 등록 컨트롤러 테스트에서 진행할 케이스는 다음과 같다.
이메일이 이메일 형식이 아닌 경우, 이름&이메일&비밀번호 중 null값이 있는 경우, 멤버 등록에 성공하는 경우.

테스트 코드는 위와 같다.
우리는 url에 해당하는 api를 작성하고, MemberSaveRequest와 MemberSaveResponse DTO를 만들어야 한다.
해당 클래스에 대한 구현은 아래와 같다.

사실 멤버 등록은 멤버십 등록과 크게 다르지 않기 때문에 어려움이 없이 끝이 났다.

profile
나만 읽을 수 있는 블로그

0개의 댓글