썸네일 Spring Security를 포함한 테스트 작성하기 개요@WebMvcTest를 이용하면 웹 계층의 슬라이싱 테스트를 수행할 수 있습니다. 이는 웹 계층 요청과 관련된 필터, 인터셉터 등의 컨텍스트를 포함하여 테스트하게 된다는 의미입니다. 여기에는 당연히 Spring Security 필터 체인도 포함되는데, Spring Security 필터 체인이 DelegateFilterProxy로 동작한다는 것을 기억해야 합니다.Spring Security를 포함하여 WebMvcTest를 수행할 때는 몇 가지 주의해야 할 점들이 있습니다. 이 글에서는 디버깅 과정을 통해 이를 해결하는 방법을 알아보겠습니다.테스트 코드먼저 테스트할 클래스는 다음과 같습니다:@WebMvcTest(AuthController.class)public class AuthControllerTest..
썸네일 WebMvcTest 도중 Jpa 메타모델과 관련한 오류를 마주한다면? 문제 상황: WebMvcTest에서 JPA 관련 오류 발생타임피스 프로젝트에 컨트롤러 테스트 코드를 추가하던 중 의외의 문제에 부딪혔습니다. @WebMvcTest를 사용했는데 JPA 메타모델과 JpaAuditing 관련 에러가 발생했습니다.@WebMvcTest는 웹 계층과 관련된 컨텍스트만 로드하는 것이 목적인데(필터, 컨버터, 인터셉터, 시큐리티 필터체인 등), 왜 JPA 관련 모듈 에러가 발생한 것일까요?원인 분석그 답은 Spring Boot 공식 문서에서 그 답을 찾을 수 있었습니다:If you use a test annotation to test a more specific slice of your application, you should avoid adding configuration sett..
썸네일 FetchType.LAZY와 Proxy, 그리고 Spring의 Transaction 처리 오늘 할 것. 앱센터 활동으로 학기 중 약소하게나마 ToDo List 프로젝트를 진행하고 있다. 현재 JWT를 이용한 로그인 기능을 개발중인데 다른 바보같은 실수들도 많았지만 그 중에서도 알고도 틀린 에러를 소개하려고 한다. LazyInitializationException 그래. 어디서 많이 봐서 이젠 익숙하다 못해 지겨울 지경이다. 아직까지 직접 마주한 적은 없었는데 굳이굳이 틀리며 또 배우게 되는구나. 이번 글에선 LazyInitializationException이 발생한 이유와 javax.persistence의 enum 클래스, 그 중에도 FetchType.LAZY와 Proxy에 대해 알아본다. 현재 상황 우선 로그를 보자. org.hibernate.LazyInitializationExceptio..