2022. 7. 30. 14:01ㆍ2022/Spring
테스트 할 클래스 클릭 후, ctrl+shift+t 하면 아래와 같이 테스트 껍데기를 만들기 위한 생성 창이 뜨게 된다.
회원가입 테스트
**** 테스트는 정상 플로우도 중요하지만 예외 플로우가 훨씬 중요하다. ****
중복회원 예외 테스트
* 전체 서비스 테스트 *
이전 MemoryMemberRepository 에서 clear를 해줬던 것 처럼, 여기서도 두번의 서비스 로직(회원가입 & 중복_회원_예외)을 돌면서 중복 이름이 DB에 쌓여 생기는 에러를 방지하기 위해 clear를 해주어야만한다.
static은 인스턴스와 상관없이 클래스에 붙는다.
따라서 MemoryMemberRepository의 store을 각각 new로 새롭게 만들게 되면 서로 다른 repository가 생성된다.
따라서 MemberServiceTest에서 new로 생성한 memoryMemberRepository와 기존의 MemberService의
memberRepository가 서로 다른 repository를 가지고 있게 된다.
이때, new로 다른객체를 생성하게 되면 다른 인스턴스로 보기 때문에 내용물이 달라질 수 있는 문제가 발생할 수 있다.
이를 해결하기 위한 방법이 바로 "DI : Dependency Injection" 이다.
기존의 memberRepository 직접 생성 부분을 아래와 같이 외부에서 만들도록 의존관계를 주입한다.
그렇게 되면 Test에서는 별개로 new로 repository를 생성했던 이전과 달리 MemberService에 repository를 주입하면 동일한 저장소에서 동작하게 된다.
* 자세한 내용은 다음 챕터에서 *
'2022 > Spring' 카테고리의 다른 글
스프링 빈과 의존관계 - 자바 코드로 직접 스프링 빈 등록하기 (0) | 2022.07.30 |
---|---|
스프링 빈과 의존관계 - 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2022.07.30 |
회원 관리 예제 - 회원 서비스 개발 (0) | 2022.07.30 |
회원 관리 예제 - 회원 리포지토리 테스트케이스 작성 (0) | 2022.07.27 |
회원 관리 예제 - 회원 도메인과 리포지토리 만들기 (0) | 2022.07.27 |