기존 이메일 본인 인증코드 발급 및 검증 api 수정: 해당 api는 일반 회원가입 시 / 소셜 로그인 회원가입 시에만 호출 -> 전자는 ROLE_ANONYMOUS 권한으로, 후자는 ROLE_GUEST 권한으로 요청 -> 기존에는 ROLE_GUEST 권한 이상만 호출하도록 설정됨 -> 권한 제한 풀고 각 경우에 따라 다르게 처리하도록 수정(ex. ROLE_GUEST 권한인 경우 userId로 비교 수행)
🛠️ 개발 오류 사항
UserEmailAuthServiceTest에서 @MockitoExtension, @SpringExtension을 같이 사용할 경우, @InjectMocks, @Mock이 제대로 동작하지 않는 문제: 모킹된 UserService의 특정 메소드를 분명 호출하였음에도 메소드 호출 여부 검증(then(...).should(times(1))) 시 mockito wanted but not invoked, Actually there were zero interactions with this mock 에러 발생
@SpringExtension 어노테이션이 잘못 동작하는 것 같은데 이유는 알아보겠음
해결방법: @SpringExtension만 사용후, @Mock 대신 @MockBean 사용하여 목빈을 @Import(UserEmailServiceImpl.class)로 등록된 UserEmailServiceImpl 빈에 주입해줌
🗣️ For 리뷰어
기존의 닉네임 중복 여부 확인 api와 거의 유사합니다. 프론트 요구사항으로 approve하시면 바로 배포하겠습니다.
💻 구현 내용
ROLE_ANONYMOUS
권한으로, 후자는ROLE_GUEST
권한으로 요청 -> 기존에는ROLE_GUEST
권한 이상만 호출하도록 설정됨 -> 권한 제한 풀고 각 경우에 따라 다르게 처리하도록 수정(ex.ROLE_GUEST
권한인 경우userId
로 비교 수행)🛠️ 개발 오류 사항
UserEmailAuthServiceTest
에서@MockitoExtension
,@SpringExtension
을 같이 사용할 경우,@InjectMocks
,@Mock
이 제대로 동작하지 않는 문제: 모킹된UserService
의 특정 메소드를 분명 호출하였음에도 메소드 호출 여부 검증(then(...).should(times(1))
) 시mockito wanted but not invoked, Actually there were zero interactions with this mock
에러 발생@SpringExtension
어노테이션이 잘못 동작하는 것 같은데 이유는 알아보겠음@SpringExtension
만 사용후,@Mock
대신@MockBean
사용하여 목빈을@Import(UserEmailServiceImpl.class)
로 등록된UserEmailServiceImpl
빈에 주입해줌🗣️ For 리뷰어
close #57