개요
2일차에 구현해야 할 내용은 회원 가입과 로그인 입니다.
목표
•
UserController에 사용자의 요청에 따라 회원가입, 로그인을 하는 코드를 작성했습니다.
•
해당 코드가 정상적으로 실행되는지 확인하기 위해서 하나의 api에 대해 성공하는 경우와 실패하는 경우를 설계해봅니다.
•
회원가입, 로그인 요청 시 어떤 api path로 요청하고, 어떤 입력 값이 필요하고, 어떤 결과값이 나와야하는지에 대한 부분에 중점을 두고 테스트를 합니다.
•
기능에 대한 “실패” 테스트 코드 작성 시, Exception 처리는 enum Error코드에 작성 후 호출 해서 사용합니다.
회원가입 테스트 코드
Controller
성공하는 경우(1가지)
•
회원가입 성공
◦
가입할 userName, password가 입력되고 service로 요청을 보내고, User 클래스가 만들어집니다.
◦
/api/v1/users/join 으로 post 요청을 보낸다.
◦
요청한 결과로 OK, 즉 200이 반환된다.
실패하는 경우(1가지)
•
회원가입 시 기존에 가입된 userName이 있는 경우
◦
가입할 userName, password가 입력되고 service로 요청을 보내면 사전에 정의된 DUPLICATED_USER_NAME error를 던집니다.
◦
/api/v1/users/join 으로 post 요청을 보냅니다.
◦
정의한 ErrorCode 중, DUPLICATED_USER_NAME를 반환합니다.
Service
없음
로그인 테스트 코드
Controller
성공하는 경우(1가지)
•
로그인 성공
◦
가입할 userName, password가 있고, service로 요청을 보내면 임의로 정의한 토큰이 나온다.
◦
/api/v1/users/login 으로 post 요청을 보낸다.
◦
해당 요청 결과로 OK, 즉 200이 반환된다.
실패하는 경우(2가지)
•
로그인 실패 : 회원 가입 된 userName 없는 경우
◦
가입할 userName, password가 있고 service로 요청을 보낼 때, 결과는 사전에 정의한 USERNAME_NOT_FOUND 에러를 반환하도록 한다.
◦
/api/v1/users/join 으로 post 요청을 보낸다.
◦
해당 요청 시 정의한 ErrorCode 중, USERNAME_NOT_FOUND를 반환한다.
•
로그인 실패 : 입력한 password 틀린 경우
◦
가입할 userName, password가 주어지고 service로 요청을 보내는 경우, 사전에 정의한 INVALID_PASSWORD 에러를 반환하도록 한다.
◦
/api/v1/users/join 으로 post 요청을 보낸다.
◦
해당 요청 시 정의한 ErrorCode 중, INVALID_PASSWORD를 반환한다.
Service
없음