Spring

Spring Boot - 회원 도메인 개발

팅탱팅탱 2024. 3. 11. 01:53

 애플리케이션 아키텍처

유연하게 컨트롤러에서도 레포지토리 접근 가능하게 할것임.

 

개발순서: 서비스, 리포지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증, 마지막에 웹 계층 적용

 

우선 회원 등록 및 회원 목록 조회 기능을 만들어 볼 것이다.

 

우선 멤버리포지토리를 만들어준다.

(JPQL 문법을 사용하여서 멤버 리스트 호출 및 특정 이름 리스트 호출하는것 잘보기)

 

그 다음으로는 멤버 서비스 클래스를 만들어줄 것이다.

멤버 서비스 클래스에서는 회원가입, 중복 회원 검증, 회원 전체조회, 회원 단일 조회 기능을 넣었다.

@RequiredArgsConstructor 어노테이션을 사용하여서 멤버 리포지토리와 멤버 서비스 클래스의 코드를 줄여주었다.

 

이제 구현한 기능들을 테스트 코드로 검증 할 것이다.(Junit 5로 테스트 케이스 작성)

테스트 요구사항

- 회원가입 성공

- 동일 이름있으면 에러 케이스 발생

 

회원가입 테스트 코드를 작성해주었다.

생성한 멤버객체에 이름을 설정해주고 가입을 시킨후 assertEquals 메서드를 사용하여 가입시킨 멤버객체와 가입시 도출된 id값으로 findOne메서드를 사용하여서 도출된 객체와 비교를 하여서 테스트를 진행하였다.

 

다음은 중복 회원 검증 테스트 코드를 작성하였다.

Junit4에서는 테스트 어노테이션에 expected 설정을 줄수있지만 나는 Junit5로 테스트를 진행중이기에 

assertThrows를 사용하여 람다형식으로 테스트를 진행해주었고, 같은 이름으로 가입시에 예외 케이스가 도출되도록 테스트를 진행하였다.