Authentication 객체가 필요한 상황에서 통합테스트를 작성할 때에는 프로젝트 구현 방식에 따라 두가지 방법이 있을 수 있다.
CustomUserDetails를 구현하지 않은경우
-> 간단하게 @WithMockUser로 테스트하여, 알아서 Authentication 객체를 만들어주는 테스트 코드를 작성해도 무방하다.
CustomUserDetails를 구현하여 CustomAuthentication 객체를 만든 경우
-> @WithUserDetails 로 CustomUserDetails 정보에 맞게 Authentication 객체 생성
하지만 가장 중요한 차이점은, @WithUserDetails 정보는 실제로 해당 User가 실제로 존재해야한다.
그래서 나온 것이 @WithSecurityContext
이다.