JUnit 테스트 에러 : JPA metamodel must not be empty!

2125 단어 SpringbootjunitJPAJPA

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/

좋은 웹페이지 즐겨찾기