[성덕스토어] @WebMvcTest, @AuthenticationPrincipal 관련한 테스트 트러블 슈팅 (2부)

조성현·2023년 7월 20일

1부 글 링크

1부와 이어지는 글입니다.


문제 2. Mock객체 세팅을 다 해놨는데 왜? NullPointException이 뜰까..

1-1 문제 분석

팀원분께서 mock 객체에 when()으로 열심히 세팅을 해뒀건만 NPE가 뜨는 문제가 있었습니다.

1-2 원인 파악

구글링을 통해 다른 개발자들은 어떻게 해결하고자 접근했는지를 찾아보며
해결방안 -> 원인 역순 분석을 해보았고, 우리가 Mock객체를 열심히 만들어놓고
Security 택배사 에 보내지를 않았다는 사실을 알아차릴 수 있었습니다.

찾아본 Ref

1-3 문제 해결

SecurityContextHolder에 우리가 세팅한 UserDetails Mock 객체 를 담아줌으로써
@AuthenticationPrincipal 로 꺼내올 수 있도록 해결하였습니다.
(위 사진에서 맨 아래 2줄을 추가하였습니다)

  • 다른 Ref에서는 더 완성도있는 인증객체를 만들어서 담아주는 것 같았으나,
    당장 현재 테스트에서는 그렇게까지는 필요하지 않다고 판단하여 필요한 선에서 간략하게 해결하고자 했습니다.

해결완료 v - v


profile
맛있는 음식과 여행을 좋아하는 당당한 뚱땡이

2개의 댓글

comment-user-thumbnail
2023년 7월 20일

정말 좋은 정보 감사합니다!

답글 달기
comment-user-thumbnail
2023년 7월 20일

굿

답글 달기