스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - (회원 서비스 테스트)

홍범선·2023년 4월 28일
0

스프링

목록 보기
12/35

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - (회원 서비스 테스트)

  1. 회원가입 테스트

    주로 테스트는 given, when, then으로 시작한다.
    given에 적용해야 할 것들을 적용하고 when에서 테스트할 로직을 실행한다. then에서 그 결과를 도출해낸다. member 객체를 생성하고 그 객체의 이름을 spring으로 한다. join을 하게 되면 중복회원검증을 하고 통과하면 setId를 부여하고 그 id를 리턴하게 된다. 그 후 then 부분에서 리턴받은 ID로 member객체를 찾고 그 객체가 테스트에서 만든 객체 같은지 비교한다.(여기선 이름으로 비교함)

  2. 1번에서는 정상적인 회원가입 플로우 경우이고 예외 경우도 생각해야 한다.

    즉 이름 중복 체크가 잘 동작하는지 확인하려고 만든 테스트 코드이다.
    member1, member2 객체를 생성하고 이름을 spring으로 동일하게 지정한다.
    처음 member1에서는 정상적으로 작동할 것이고 member2에서는 exception이 날 것이다.
    전에는 try catch로 예외처리 확인을 했지만 assertThrows는 리턴타입이 있다. 이 것으로 메세지를 비교한다.


처음에는 memberService와 memberRepository 객체를 new로 생성했다. 하지만 memberService에서도 new로 meemberRepository 객체를 new로 생성한다. 즉 Test에서 객체와 Serivce에서 객체와 서로 다르다. 이것을 같게 해주는 방법이 DI 의존성 주입이다.
즉 beforeEach에서 시작하기 전에 리포지토리를 생성하고 그 객체를 서비스에 넣어준다.

기존에는 서비스 쪽에서도 new로 만들었지만 이제는 외부에서 주입된 리포지토리로 변경한다.

  1. 인텔리제이 한글 세팅

profile
알고리즘 정리 블로그입니다.

0개의 댓글