목차
1. build.gradle 설정
Spring Boot 3.0.4 기준
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
def querydslSrcDir = "$buildDir/generated/querydsl"
clean {
delete file(querydslSrcDir)
}
tasks.withType(JavaCompile) {
options.generatedSourceOutputDirectory = file(querydslSrcDir)
}
2. QuerydslConfig
@Configuration
public class QuerydslConfig {
@PersistenceContext
private EntityManager entityManager;
@Bean
public JPAQueryFactory jpaQueryFactory(){
return new JPAQueryFactory(entityManager);
}
}
3. TestQuerydslConfig
테스트용 QuerydslConfig 파일을 따로 생성하였다
Test 폴더에 생성하고 테스트 파일이므로 @Configuration -> @TestConfiguration으로 변경
@TestConfiguration
public class TestQuerydslConfig {
@PersistenceContext
private EntityManager entityManager;
@Bean
public JPAQueryFactory jpaQueryFactory() {
return new JPAQueryFactory(entityManager);
}
}
4. Repository Test
@DataJpaTest
@Import(TestQuerydslConfig.class)
@TestPropertySource(locations = "classpath:application-test.properties")
public class UserRepositoryTest {
...
}
위의 코드와 같이 TestQuerydslConfig 클래스를 테스트 코드에서 Import 하면 사용할 수 있다
'Spring' 카테고리의 다른 글
| [Spring test] MongoDB 테스트 설정 (0) | 2023.11.05 |
|---|---|
| [Spring test] Repository Unit Test ManyToOne (0) | 2023.09.26 |