반응형
상황
@DataJpaTest(properties = {
"spring.config.location=classpath:application-test.yml"
})
JPA만 테스트 하기 위해서 @DataJPATest를 선언하고
application-test.yml을 바로보도록 설정하고
빈을 찾을 수 없다고 에러가 발생했습니다.
문제 파악
환경설정이 Test로 되어 있고 @DataJPATest는 Spring의 빈이 아닌 JPA단만 테스트 합니다.
test 패키지가 아닌 main 패키지에 있다고 해도 JPAQueryFactory를 찾을 수 없습니다.
해결 방법
- test 패키지 아래에 Test를 위한 TestConfig를 선언
- TestConfig에서 JPAQueryFactory를 주입
- @DataJPATest에서 @Import(TestConfig.class) 선언
TestConfig.java
@TestConfiguration
public class TestConfig {
@PersistenceContext
private EntityManager entityManager;
@Bean
public JPAQueryFactory queryFactory() {
return new JPAQueryFactory(entityManager);
}
}
AdminInfoTest.java
@DataJpaTest(properties = {
"spring.config.location=classpath:application-test.yml"
})
@Import(TestConfig.class)
@ExtendWith(SpringExtension.class)
@DisplayName("관리자 정보 테스트")
public class AdminInfoTest {
반응형
'개발(합니다) > 시나브로(이슈)' 카테고리의 다른 글
[encoding] junit과 Mock encoding 이슈 (0) | 2021.06.05 |
---|---|
[selenium] Driver info: driver.version: SelemiumDriver (0) | 2021.06.04 |
[mysql] Apply changes to thema Error 1833: Cannot change column '': used in a foreign key constraint '' (0) | 2021.05.28 |
[Lombok] gradle(+spring test)에서 사용하는 방법 (0) | 2021.05.21 |
[intellij] 인텔리제이에서 test 실행시 에러 No tests found for given includes (0) | 2021.05.14 |