SS6 회원 part

devyu·2022년 7월 28일
0

💻 Spring Study

목록 보기
5/7

* 해당 시리즈는 인프런 김영한님 강좌인 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 내용 강의를 학습하며 개인적으로 정리한 글이며, 저작권 문제나 잘못된 부분이 있다면 지적해주시면 감사하겠습니다.

회원 리포지토리 테스트 케이스 작성

만난 에러 🤯


assertThat이 Import 되지 않아서 생긴 에러 같았다. 예상이 맞았고, 구글링으로 맞는 import 코드를 찾아서 작성했다.

import static org.assertj.core.api.Assertions.assertThat;

Test 중요사항 💡

테스트는 순서에 상관없이(의존관계 없이) 설계되어야 한다.
-> 저장소 혹은 공용데이터를 지울 코드 필요.

MemoryMemberRepositoryTest의 추가사항

@AfterEach // 콜백 메소드로, 함수하나 실행 후 돌아와서 또 실행.
    public void afterEach() {
        repository.clearStore();
    }

MemoryMemberRespository의 추가사항

public void clearStore() {
        store.clear();
    }

반대로 테스트하기 (테스트 주도 계발 TTD)

  • 테스트를 먼저 만들고 프로그램을 만든다.

회원 서비스 개발

MemberService의 추가사항

아래의 경우 메소드로 뽑는 것이 좋다.

.
.
// 같은 이름이 있는 중복 회원 X
memberRepository.findMyName(member.getName()) 
//Optional안에 멤버 객체가 있음 -> null이 있을수 있다면 optional로 감싸는 것.
                .ifPresent(m -> {
                    throw new IllegalStateException("이미 존재하는 회원입니다.");
                });

메소드 생성 단축키: ctrl+t -> Extract Method

private void validateDuplicateMember(Member member) {
        memberRepository.findMyName(member.getName()) //Optional안에 멤버 객체가 있음 -> null이 있을수 있다면 optional로 감싸는 것.
                .ifPresent(m -> {
                    throw new IllegalStateException("이미 존재하는 회원입니다.");
                });
    }
profile
티스토리와 벨로그 사이 줄타기....

0개의 댓글

관련 채용 정보