회원관리 예제 - Repository개발 및 테스트 케이스 작성
데이터 : 회원 ID, 이름 기능 : 회원 등록 , 조회 MemberRepository.java (Interface) package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.List; import java.uti..
write-read.tistory.com
Service
package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /** * 회원 가입 */ public Long join(Member member){ // 같은 이름이 있는 중복 회원은 안된다. validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent( m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } /** * 전체 회원조회 */ public List<Member> findMembers(){ return memberRepository.findAll(); } /** * 회원조회 */ public Optional<Member> findOne(Long memberId){ return memberRepository.findById(memberId); } }
** 빨간 박스 안에 있는 테스트 할 메서드를 선택한 후 OK를 누르면 테스트 클래스 바로 생성
(Ctrl + Shift + T)
MemberServiceTest.java
package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.internal.matchers.Null; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemoryMemberRepository memberRepository; MemberService memberService; @BeforeEach public void beforeEach(){ memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach(){ memberRepository.clearStore(); } @Test void 회원가입() { //given Member member = new Member(); member.setName("hello"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); Assertions.assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test void 중복_회원_예외(){ //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class , () -> memberService.join(member2)); Assertions.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); // memberService.join(member1); // try{ // memberService.join(member2); // fail(); // } // catch(IllegalStateException e){ // Assertions.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); // } //then } @Test void findMembers() { } @Test void findOne() { } }
(테스트 코드는 실제 프로젝트 빌드 코드와 무관하기 때문에 테스트 이름을 직관적이게 한글로도 가능하다)
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런
스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Java Spring MVC Spring Boot 온라인
www.inflearn.com
회원관리 예제 - Service개발 및 테스트 케이스 작성
회원관리 예제 - Repository개발 및 테스트 케이스 작성
데이터 : 회원 ID, 이름 기능 : 회원 등록 , 조회 MemberRepository.java (Interface) package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.List; import java.uti..
write-read.tistory.com
Service
** 빨간 박스 안에 있는 테스트 할 메서드를 선택한 후 OK를 누르면 테스트 클래스 바로 생성
MemberServiceTest.java
(테스트 코드는 실제 프로젝트 빌드 코드와 무관하기 때문에 테스트 이름을 직관적이게 한글로도 가능하다)
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런
스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Java Spring MVC Spring Boot 온라인
www.inflearn.com
'기록 > 스프링부트 시작하기' 카테고리의 다른 글