JUnit 테스트 에러 : JPA metamodel must not be empty!
JUnit 테스트코드 중 @WebMvcTest(특정클래스.class)
를 붙인 Controller 클래스를 run할 때 생기는 오류이다. 이는 JPA에서도 @EnableJpaAuditing
을 추가했는데 @WebMvcTest가 JPA 관련 Bean들을 로드하지 않기 때문에 에러가 발생한 것이다.
해결방법
둘 중 편한 방법을 선택하면 된다.
개인적으로는 테스트 추가할 때 마다 @MockBean
을 붙일 바에 별도의 @Configuration
파일을 하나 만드는 것이 권장하는 방법이다.
3.1. 별도의 @Configuration 자바 파일 분리
JpaAuditingConfiguration.java
@Configuration
@EnableJpaAuditing
public class JpaAuditingConfiguration {
}
3.2. @MockBean 추가Permalink
WebMvcTest.java
@RunWith(SpringRunner.class)
@WebMvcTest(TargetController.java)
@MockBean(JpaMetamodelMappingContext.class)
테스트 클래스에 JpaMetamodelMappingContext를 MockBean으로 추가한다.
참고
https://xlffm3.github.io/spring%20&%20spring%20boot/JPAError/
Author And Source
이 문제에 관하여(JUnit 테스트 에러 : JPA metamodel must not be empty!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mooh2jj/JUnit-테스트-에러-JPA-metamodel-must-not-be-empty저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)