Unsatisfied dependency expressed through field 'objectMapper':
No qualifying bean of type 'com.fasterxml.jackson.databind.ObjectMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
@WebMvcTest를 사용하는 ControllerTest에서는 @Autowired ObjectMapper를 사용했었는데,
@DataJpaTest에서 같은 방법으로 사용하려고 하니 위와 같은 에러가 났다.
에러 내용은 스프링빈에서 관리하는 ObjectMapper를 찾지 못한다는 것이다.
해결 방법은 간단하다. 다음처럼 @AutoConfigureJsonTester를 붙여주기만 하면 된다.
나는 해당 해결방법을 찾고, @WebMvcTest에는 @DAtaJapTest와 달리 @AutoConfigureJsonTester도 포함돼 있을 거라고 예상했다.
그러나 예상과 다르게 존재하지 않는다.
WebMvcTest이니 웹 계층에 데이터를 읽기위해서 ObjectMapper와 관련된 빈들이 자동 등록돼 있을 거란 생각은 해봤으나, 대체 어떤 구조로 이루어져 있는지 몰라서 좀 더 찾아봤다.
오늘 처음으로 spring-boot-test-autoconfigure를 열었는데, 봐도 잘 모르겠다.:(
아직도 한참 부족하다는것을 느낀다.
'Java & Spring Boot' 카테고리의 다른 글
[Java] WebClient queryParam uri 인코딩 문제 (0) | 2024.10.17 |
---|---|
서블릿 필터 & 스프링 인터셉터 (0) | 2022.10.04 |
Java 객체, 클래스, 인스턴스의 차이 (0) | 2022.07.18 |
자바에서 효율적으로 Exception 커스텀하기 (0) | 2022.02.08 |
H2 In-memory 사용시 delete log 확인 (0) | 2021.11.25 |