///////
Search
☀️

2일차 힌트

개요

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

없음