
테스트 만들고 싶은 클래스이름 위에 커서 올려두고 Ctrl + Shift + T 누르고 테스트원하는 메서드 선택하면 자동으로 테스트가 만들어진다.

테스트코드의 메서드이름은 한글로 가능!!

1. 회원가입

2. 중복 회원 예외
1) try-catch 문 사용
- 위의 가입테스트는 잘되는 경우를 테스트함 (반쪽짜리 테스트) 예외 상황도 상항 테스트 해주어야한다.

trycatch문으로 예외를 잡았다. member1,2를 같은 이름 spring으로 해두었다. member1을 join 후 member2를 join할 때 이 때 예외가 터지지 않고 그 다음 줄로 넘어가면 fail(); 임을 명시한다.
우리는 예외가 터지게 설계 해두었으므로 IllegalStateException을 잡아서 assertThat해준다. 이 때 assertThat은 없어도 됨
예외가 터져야 테스트가 성공한 것이다.
2) assertThrows 사용

assertThrows(IllegalStateException.class, () -> memberService.join(member2));
이후 Ctrl + Alt +V 로 변수 받기
assertThrows ( foo, bar)
foo : bar의 로직을 태울 때 foo의 exception이 터져야한다.
bar : 이 로직이 돌아갈 때
e.getMessage() 는 메세지 검증
# 이 테스트도 각 메서드가 끝날 때 마다 리포지토리를 지워야한다. ( 테스트는 독립적이어야한다. )

MemoryMemberRepositoryTest 처럼 업캐스팅하면 안됨 -> clearStore 메서드가 MemoryMemberRepository의 메서드임.
( 이전 테스트 바로 또 실행 : Shift + F10 )
----------------------------------------어려울 수 있음
# 객체가 달라지는 문제
- 해결 : 생성자를 만들어서 테스트 코드에서 new해준다.


memberService=new MemberService(memberRepository);
# DI
1. 에서 처럼 외부에서 new 해줄 때
2. MemberService의 입장에서 내가 직접 new하지도 않는데 memberRepository를 외부에서 넣어준다. -> DI
해당 강의를 수강 후 정리한 내용입니다.출처 : 인프런 김영한님의 강의를 수강 후 정리한 내용입니다.
꾸준히 다시보자.
1. 220712
2. 220731
'Java, Spring > 스프링 입문' 카테고리의 다른 글
회원 웹 기능 - 홈 화면 추가, 등록 (0) | 2022.07.10 |
---|---|
컴포넌트 스캔과 자동 의존관계 설정, 자바코드로 직접 스프링 빈 등록하기 (0) | 2022.07.10 |
회원 서비스개발 (0) | 2022.07.05 |
회원 리포지토리 테스트 케이스 작성 (0) | 2022.07.04 |
회원 도메인과 리포지토리 만들기 (0) | 2022.07.04 |