My Melody Is Cute 테스트코드 오류
본문 바로가기

실습👁️‍🗨️/프로젝트1 - 쓰담

테스트코드 오류

내용을 보냈지만 요청바디가 없다고 자꾸 에러가 뜬다

다른부분을 다 살펴봤지만 문제가 없었고

자꾸 andExpect부분에 빨간줄이 생김,,,,

 

밑에 검증부분을 지우면 돌아가는데 넣으면 바로 실패...

나도 Restdocs 사용하고싶다고 ㅡㅡ (뭔가 멋져보임,,,이상한 부분에 꽂혔다)

 

meetingDate 타입을 String 으로 설정했을때는 성공하지만

LocalDateTime으로 설정했을때는 오류가 난다....

 

시간설정부분에서 문제가 있는것으로 판단!💡

 

🧠원인 : 스프링 RestDocs에서 LocalDateTime형식을 기본적으로 지원하지 않는다

LocalDateTime 을 JSON으로 변환할 때 형식이 맞지않아서 문제가 발생할 수 있다.

 

 

1. 모임 시간을 String 타입으로 입력

 

 2024-02-21T15:00 이부분을 그냥 입력할수 없어서

String 형식으로  입력해줘야함 (위의 원인🧠)

✅"2024-02-21T15:00" 처럼 문자열 형식으로 입력 해야한다

 

2. String 타입을 LocalDateTime 타입으로 파싱

 

하지만 이 값을 또 LocalDateTime 타입으로 파싱을 해줘야함

✅이를 위해서 문자열의 형식이 'yyyy-MM-ddTHH:mm' 같은 ISO-8601형식이어야 한다

 

 

근데 또 이렇게 입력하면 오류가 남

T가 들어간 형식 자체를 아예 인식을 못하는 것 같다!!!!!!!!!!!!!!

 

.andExpect(jsonPath("$.data.meetingDate").value(equalTo("2024-02-21T15:00:00")))

andExpect에 jsonPath로 반환되는 부분을 직접 선택해내는 방법도 있지만 여전히 같은 오류가 생김..............

 

반환하는 포맷이 정확하게 일치하지 않아서 문제가 있는건가??

이 형식을 검증부분이 아닌 메서드 부분에서부터 형식을 일치하게 변환을 시켜서 응답처리를 할 수 없을까?

 

LocalDateTime.parse 로 문자열을 LocalDateTime 객체로 변환하고 

문자열의 형식을 알려주는 DateTimeFormatter를 함께 사용해서 해당 정보를 가진 객체를 생성했다

 

 

일단 포스트맨을 사용해서 h2에서 확인해 보면

meetingDate를 분까지 설정했는데 초까지 나온다

 

테스트 오류 부분을 확인하면...

nano부분도 있따...?

0으로 설정된 nano 

LocalDateTime.parse를 사용할때 기본적으로 0으로 설정된다고 한다

그래서 굳이 명시할 필요가 없음

 

 ✅ JSON 데이터에서 제거해도 된다!

그냥 이 속성을 요청을 보내는 부분부터 제거해버리자

 

Gson을 사용하는 경우의 예시 

// Gson 객체 생성
Gson gson = new GsonBuilder()
        .registerTypeAdapter(LocalDateTime.class,
        (JsonSerializer<LocalDateTime>) (localDateTime, type, jsonSerializationContext) ->
                new JsonPrimitive(localDateTime.format
                (DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))))
        .create();

 

드디어 Post 테스트 완료했다.............................🧟‍♀️

나머지는 언제 다하지?????????

 

 

->> 매번 주석처리 하는거 말고 그냥 애너테이션 달면 된다 굿😎

@TestPropertySource(properties = "spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration")

 

 

'실습👁️‍🗨️ > 프로젝트1 - 쓰담' 카테고리의 다른 글

2차 서버테스트  (0) 2024.01.17
모임 키워드 검색  (0) 2024.01.12
1차 서버테스트 & 중간점검  (0) 2024.01.10
ec2서버 연결하기  (0) 2024.01.09
테스트코드 오류 2  (1) 2024.01.07