[SpringBoot] 테스트 코드 작성 시 Mock과 Spy, 그리고 BCryptPasswordEncoder의 encode
·
Framework/SpringBoot
첫번째 이슈: BCryptPasswordEncoder 동작 1. 문제Mock으로 BCryptPasswordEncoder 를 주입 받아 proxy로 생성돼 비밀번호가 제대로 저장되지 않는 문제 발생비밀번호가 인코딩되어 저장되지 않고, 비밀번호 검증도 하지 못해 예외가 발생하고 있다. 2. 원인 @Mock private BCryptPasswordEncoder passwordEncoder; 테스트 주체는 UserService니 BCryptPasswordEncoder는 Mock으로 지정하였다.그로 인해 matches()와 encode()가 동작하지 않았고, password를 제대로 검증하지 못하고 있었다. 3. 해결 방안 given - willReturn 이용given(passwordEncoder.matc..