본문 바로가기

패스트캠퍼스/100% 환급 챌린지_2

패스트캠퍼스 환급챌린지 25일차 : Netplix 구독형 멤버십 프로젝트로 배우는 Spring Security 강의 후기

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://abit.ly/lisbva

 

 

안녕하세요 :)

오늘은 챌린지 25일차로, 오예 불금입니다~ 빨리 끝내고 놀아야징!!

 

오늘 배울 내용은,

Part A. 로그인, 로그아웃, 회원가입으로 배워보는 스프링 시큐리티 기초

Ch 6. 실전: 로그인, 로그아웃, 회원가입 만들어보기

"07. 단위 테스트 작성" 입니다.


 

오늘은 Ch 6 의 마지막 강의이면서 Part 1의 마지막 강의이다. 언제 이렇게 달려왔나 싶은데, 꾸준하게 하다보니 이렇게 된 것 같고, 기초를 마무리하는 시간으로 유종의 미를 잘 거두어서 다음 시간부터 진행하는 심화에 대해서도 잘 따라갈 수 있도록 해야겠다는 생각이 들었다.

 

이번 시간에는 지난 시간에 작성했던 코드에 대해서 잘 작성이 되었는지 확인하기 위한 간단한 단위 테스트를 진행하였고, 유저 서비스라고 하는 클래스에서 제공하는 register 메소드에 대한 단위 테스트를 작성해보았다.

이번 시간에 테스트 해보고자 하는 기능은 유저 레파지토리에서 userExists가 true 일 때, RuntimeException이 발생하는지, userExists가 false 일 때, create 메소드를 호출하는지의 기능에 대해서 테스트를 진행해보았다.

유저 레파지토리를 mocking 해서 처리하기 위해 @ExtendWith 어노테이션을 추가했다. 또 @Mock이라고 하는 어노테이션은 @InjectMocks 어노테이션을 사용하면 모킹을 해서 필요한 의존성들을 다 넣어주기 때문에 굳이 해주지 않아도 된다는 것도 알 수 있었다.

단위 테스트는 given, when, then 패턴을 따라 테스트를 진행했다. 강사님께서 에러 메세지까지 하나하나 다 체크하는 것은 너무 과한 테스트 코드일 수도 있다고 하셨고, 필요에 따라 잘 활용하면 될 것 같다.

크게 테스트 한 것은 MockitoExtension을 활용을 해서 유저가 존재할 때 회원가입을 못하게 막는 것과 존재하지 않을 때 회원가입 로직을 수행하는 것 이런 식으로 단위 테스트를 작성해볼 수 있다는 것을 배울 수 있는 시간이였다.

이전 시간에는 실제로 화면에서 코드를 돌려가면서 어떤 식으로 동작하는지 회원가입이랑 로그인, 로그아웃을 체크했었고, 이번 시간에는 회원가입하는 기능에 대해서 단위 테스트를 작성하는 것에 대해 살펴보는 시간을 살펴봤다.