질문과 답변 정리

23.01.07 jsonPath의 $.data.phone 과 같은 표현식

sweet-po 2023. 1. 8. 02:20

jsonPath의  $.data.phone 과 같은 표현식은
 ResultActions 타입 actions에 담긴
ResponseEntity의 body parameter인 
SingResponseDto가 root가 되어 
그 안에 data 필드, 또 data 필드에 할당되는 mapping 메서드 return값인 response,
 또 그 response 안에 phone 필드 값을 찾는게 맞나?

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

actions에 ResponseEntity가 담긴건 아니다. 이미 DispatcherServlet을 거쳐서 외부로 나가고 있기 때문에 JSON 문자열이 담김. 이 문자열을 파싱해서 Java에서 어떤 값에 접근하려면 결국 객체니까 Object로 변환 추측.

다만 개발자가 조금 더 편리하게 접근 가능하도록 $.data.phone 이런식으로 표기

 

흠 근데 저 표현식이 필드 phone을 접근하는 건 아닌거 같음..

actions.andExpect(status().isOk())
        .andExpect(jsonPath("$.data.name")
                .value(patch.getName()))
        .andExpect(jsonPath("$.data.memberStatus")
                .value(patch.getMemberStatus().getStatus()));

 

저기서 getMemberStatus()로 끝나면 일치하지 않아서 오류가 난다

그래서 getStatus()로 했는데

getStatus 여야 활동중 같은 한글로 나오고

getMemberStatus 면 active같은 영어로 나오는건데..

getter 기준인가