git repository : https://github.com/Rezalog/spring-boot-entry-inf
GitHub - Rezalog/spring-boot-entry-inf
Contribute to Rezalog/spring-boot-entry-inf development by creating an account on GitHub.
github.com
구현한 회원 서비스, MemberService 를 테스트하기 위한 코드를 작성해보자.
이때 테스트 코드 작성시, given-when-then 으로 나누어 작성하는 습관을 들이자!
(**cmd + shift + T 로 테스트 자동 생성이 가능 !)
MemberServiceTest
beforeEach
- MemoryMemberRepository 은 MemberRepository 를 implements하므로, MemberRepository 타입으로 볼 수 있다.
- MemberService 에 MemberRepository 타입의 인자를 주입(Dependency Injection) 으로 MemeberServiceTest class 에서 MemberService 인스턴스를 생성한다.
afterEach
- MemoryRespository 인스턴스가 있어야 clear가 가능하므로 memoryRepository 선언
회원가입()
*오타 : memberService.findOne -> memberRepository.findById
- 기본 로직
- 회원가입 정상 작동여부, 중복회원 정보 입력 시 에러 동작 여부, DB에 저장된 값과 도메인에 set된 값의 일치여부
- 테스트
- given : 도메인인 member에 id, 이름 set
- when : 도메인 정보로 memberService의 회원가입 메소드인 join 실행, 반환 값인 id 저장
- then : 반환된 saveId가 member의 name 과 같은지 검증
중복_회원_예외()
- 기본 로직
- 중복 회원 검증이 가능한지, 중복 회원일 때 IllegalStateException 이 나오는지, "이미 존재하는 회원입니다." 에러메세지 검증
- 테스트
- given : 도메인인 member1,2에 id, 이름 동일하게 set
- when : member1 join 이후 member2 join할 때
- then : 중복 회원 일 때 설정한 IllegalStateException을 올바르게 Throw 하는지 검증, "이미 존재하는 회원입니다." 에러메세지 일치여부 검증
**테스트 시, 정상 작동 여부 뿐만아니라,
Exception 에 대한 처리도 잘 하고 있는지 여러 값을 set 해보면서 테스트해야함 !!
'Java > 스프링 입문 - 스프링 부트, 웹 MVC, DB 접근 기술' 카테고리의 다른 글
[Spring Bean과 의존관계 - (2)] Java Code 로 직접 Spring Bean 에 등록하기 (0) | 2022.07.01 |
---|---|
[Spring Bean과 의존관계 - (1)] Component Scan 과 자동 의존관계 설정 (0) | 2022.07.01 |
[회원 관리 예제, 백엔드 개발 - (4)] 회원 서비스 개발 (0) | 2022.06.30 |
[회원 관리 예제, 백엔드 개발 - (3)] 회원 리포지토리 테스트 케이스 작성 (0) | 2022.06.29 |
[회원 관리 예제, 백엔드 개발 - (2)] 회원 도메인과 리포지토리 만들기 (0) | 2022.06.29 |