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/