Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: JPA metamodel must not be empty!
@EnableJPaAuditing
어노테이션을 달아놓아서 모든 test들이 항상 Jpa관련 bean들을 필요로 하는 상태가 되었다.@WebMvcTest
는 Jpa 관련 bean을 전혀 로드하지 않는 단위테스트이기 때문에 에러가 발생하는 것이다. @MockBean(JpaMetamodelMappingContext.class)
test 클래스에 이 어노테이션을 달아주면 일단 그 test는 오류 없이 실행시킬 수 있으나, 위에서 언급했듯이 모든 test에서 bean을 필요로 하는 상태가 되었기 때문에 모든 test 클래스에 이 어노테이션을 달아주어야 한다.
@Configuration
@EnableJpaAuditing
public class JpaAuditingConfiguration {
}
어차피 단위테스트를 계속 만들어야 하기 때문에 configuration을 따로 분리하는게 더 편한 방법인 것 같다.