inflearn logo
강의

Course

Instructor

Spring Testing in One Day with Juju

Creating a simple grade storage application

성적 저장 어플 만들기 강의 관련 질문

115

youngrok399970

3 asked

0

강의 17분쯤에 save메서드를 postman에서 테스트를 해보았는데 Internal Server Error가 떠서 확인해보니

cannot deserialize from Object value (no delegate- or property-based Creator) 에러가 뜨는 것을 확인할 수 있었습니다.

그래서 기존에

@Getter
@AllArgsConstructor
public class SaveExamScoreRequest {
    private final String studentName;
    private final Integer korScore;
    private final Integer englishScore;
    private final Integer mathScore;
}

이렇게 써져있는 코드를

@Getter
@AllArgsConstructor
@NoArgsConstructor
public class SaveExamScoreRequest {
    private String studentName;
    private Integer korScore;
    private Integer englishScore;
    private Integer mathScore;
}

이렇게 바꾸니 정상적으로 응답을 반환함을 확인할 수 있었습니다.

알아보니 해당 에러는 jackson생성자가 빈 생성자가 없는 객체를 만드는 법을 모르기 때문에 뱉는 에러라고 설명되어있어서 @NoArgsConstructor어노테이션을 추가하였고 final을 지워주었습니다.

근데 강사님의 코드는 잘 돌아가는데 왜 제 코드는 저런 에러가 발생하는지 모르겠습니다. 혹시 스프링 버전하고도 관련이 있나요? (저는 현재 spring boot 3.4.1 버전을 사용하고 있기는 합니다.)

spring docker junit mockito 소프트웨어-테스트

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

김영록님, 질문해주신 내용에 대해 설명드리겠습니다.

cannot deserialize from Object value (no delegate- or property-based Creator) 오류는 일반적으로 Jackson에서 객체를 JSON으로 직렬화/역직렬화할 때 빈 생성자 (no-args constructor)가 필요하기 때문에 발생합니다. Jackson은 객체를 인스턴스화하려면 기본적으로 빈 생성자를 필요로 합니다. 따라서, 강사님의 코드가 잘 동작하는 이유는 아마도 그의 환경이나 버전에서 다른 설정이나 지정된 추가 구성사항이 있을 수 있기 때문입니다.

스프링의 버전 차이가 이 문제에 영향을 줄 수는 있지만, 대부분의 경우에는 Jackson 설정과 관련이 있습니다. 스프링 부트 3.4.1에서 Jackson을 사용하는 경우, 기본 설정이 비슷해야 하지만 어떤 차이로 인해 이 오류가 발생할 가능성이 있습니다.

해결책으로는:
1. @NoArgsConstructor 어노테이션을 추가하여 Jackson이 빈 생성자를 통해 객체를 만들 수 있도록 하는 것이 맞는 방법입니다.
2. final 키워드를 제거하여 기본 생성자에서 필드의 초기화를 허용하는 것도 올바른 접근입니다.

또한, Jackson 모듈이나 설정을 특별히 수정한 부분이 없는지 확인해보세요. 추가적으로, Jackson의 기본 동작을 확인해주셔도 좋으며, 도큐멘테이션이나 사용 중인 라이브러리의 버전을 한 번 점검해보시는 것도 좋습니다.

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.testing.spring-boot-applications.json-tests

위 URL을 참고하시면 JSON 테스트 관련 보다 자세한 설명을 보실 수 있습니다.

도움이 되셨길 바랍니다! 추가적인 질문이 있으면 언제든지 말씀해 주세요.

Docker + Spring Boot CI/CD 방법

0

4

1

docker compose에 대해 질문드립니다.

0

13

1

패키지 구분에 대해 궁금한게 있습니다

0

11

1

S3통합 테스트 질문

0

113

1

강의를 수강하면서 2가지 질문이 생겼습니다

0

195

2

github action

0

256

2

Model 의존 java.lang, jakarta

0

312

2

put api 500 서버에러응답 문제

0

231

1

스프링 버전

0

265

2

flyway 컨테이너가 동작하지 않습니다.

0

357

2

Mock 객체 사용법

0

333

1

flyway jdbcdriver 오류

0

467

2

강의 코드

0

283

1

[M1 MAC] 도커 컴포즈 docker-compose up 에러

0

854

2

인텔리제이로 Commit 시 pre-commit 이 안됨

1

1048

2

MySQL property

0

297

1

카프카 실행에 문제가 있는 분들

2

337

1

github action 통합 테스트 build 오류 건

0

602

1

블로그 포스팅 관련 문의

1

306

1

Kafka테스트 다른 테스트랑 같이 돌리면 실패하는데 이유를 모르겠습니다..

0

425

1

Mysql테스트중 에러발생

1

565

1

윈도우 10 : c:/ file already exists 문제

0

604

1

JaCoCo 레포트 파일이 안생깁니다.

2

662

1

localstack 이 deprecated 되서 이렇게 수정했습니다.

2

508

1