[Spring] WebMvcTest 시 IllegalArgumentException: JPA metamodel must not be empty! 에러 해결기

Walter Mitty·2023년 6월 1일
0

^^...LoginControllerTest, FaqControllerTest 에서는 잘 동작되던게 갑자기 UserAdminControllerTest에서 안됨...눈물난다.

해당 에러를 검색해보니 공통적인 해결방법은 클릭시 나오는 내용이었다.

근데 내가 이 방법을 시도하지 않은 이유는, 맨 위에도 적었다 싶이 여지껏 다른 컨트롤러 테스트에서는 해당 에러를 만난 적이 없기 때문.
그래서 기존 ControllerTest를 보니까 다른 부분이 하나 있었는데, 부모 ControllerTest를 상속을 안해놨다^^...

부모 ControllerTest는 아래와 같은 내용이다.

ControllerTest

@Import(SecurityConfig.class)
@MockBean(JpaMetamodelMappingContext.class)
@ExtendWith({RestDocumentationExtension.class})
@AutoConfigureRestDocs(uriScheme = "https", uriHost = "docs.api.com")
public class ControllerTest { // 자식 클래스에서 상속 받아서 사용할 부모 클래스

    @Test
    public void test() throws Exception {} // 테스트 클래스에는 사용되는 테스트 메서드 필요
}

이 테스트용 부모 컨트롤러를 만들어 놓고 상속해서 사용하면 된다.

상속받은 Controller Test는 아래와 같다

UserAdminControllerTest

@WebMvcTest(UserAdminController.class)
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
public class UserAdminControllerTest extends ControllerTest {

    @Autowired
    private MockMvc mockMvc;
    @MockBean
    private UserAdminApplicationService userAdminService;

0개의 댓글