SpringBootTest의 @DataJpaTest에서 구성 클래스를 가져오려면 어떻게 해야 합니까?
SpringBoot 애플리케이션과 구성 패키지가 있습니다.
@Configuration
@EnableJpaAuditing
public class PersistenceConfig {
}
그러나 PersistenceConfig가 사용자 저장소에서 선택되지 않음테스트
@RunWith( SpringRunner.class )
@DataJpaTest
public class PersonRepositoryTest {
// Tests ...
}
하지만, 만약 내가 변한다면,@DataJpaTest to @SpringBootTest
사용자 저장소테스트에서 구성을 선택합니다.
나의 패키지 구조는
- main
- java
- config
PersistenceConfig.java
- domain
Person.java
- persistence
PersonRepository.java
Application.java // @SpringBootApplication
- test
- java
- persistence
PersonRepositoryTest.java
Spring Boot 1.4의 테스트 개선 사항은 @DataJpaTest로 지속성 계층을 테스트하는 것을 제안합니다.
관찰:테스트 클래스에서 두 주석을 모두 수행해도 구성 @SpringBoot을 가져오지 않습니다.테스트 @DataJpa테스트
질문 1: @DataJpaTest로 지속성 계층을 테스트할 때 구성 패키지를 테스트로 올바르게 가져오는 방법(SpringBoot의 모범 사례)은 무엇입니까?
질문 2: @SpringBootTest를 사용하여 해결할 수 있습니까?@DataJpaTest는 트랜잭션 관리를 포함하여 데이터베이스에 적합한 자동 구성을 갖춘 메타 주석이기도 합니다.하지만 만약 내가 그것이 필요하지 않다면요?
해결책은 다음과 같습니다.@Import
사용자 구성을 사용자가 수행한 구성으로 가져오려면@DataJpaTest
이것이 제가 이해하는 바입니다.@Import
.
@RunWith(SpringRunner.class)
@DataJpaTest
@Import(AuditConfiguration.class)
public class AuditTest {
}
와 함께AuditConfiguration
감사를 가능하게 하는
@Configuration
@EnableJpaAuditing
public class AuditConfiguration {
}
사용해 볼 수 있습니다. 주석 달기PersistenceConfig
와 함께@ComponentScan
Spring에서 구성 요소 스캔을 활성화합니다.
@Configuration
@EnableJpaAuditing
@ComponentScan(basePackages = "com.yourbasepackage")
public class PersistenceConfig {
}
더 이상의 구성이 없으면,@ComponentScan
기본적으로 동일한 패키지를 검색합니다.PersistenceConfig
학급.
그리고 추가합니다.@Context-Configuration
주석을 사용하여 PersistenceConfig.class에서 구성을 로드하도록 지시합니다.
@RunWith( SpringRunner.class )
@DataJpaTest
@ContextConfiguration(classes=PersistenceConfig.class)
public class PersonRepositoryTest {
// Tests ...
}
@georges van post 이후 테스트에서 한 줄만 추가하면 모든 구성 클래스가 선택된다는 것을 알게 되었습니다.
@RunWith( SpringRunner.class )
@DataJpaTest
@ComponentScan(basePackages = "com.basepackage.config")
public class PersonRepositoryTest {
// Tests ...
}
특정 구성 클래스를 하나만 원하는 경우 다음 작업을 수행할 수 있습니다.
@RunWith( SpringRunner.class )
@DataJpaTest
@ContextConfiguration(classes=MyConfig.class)
public class PersonRepositoryTest {
// Tests ...
}
또는 다음을 포함하는 여러 클래스:
@ContextConfiguration(classes={MyConfig1.class, MyConfig2.class})
언급URL : https://stackoverflow.com/questions/43705720/how-do-i-import-configuration-classes-in-a-datajpatest-in-a-springboottest
'programing' 카테고리의 다른 글
1D 배열을 2D 배열로 변환(numpy) (0) | 2023.07.09 |
---|---|
Apache POI 3.6을 사용하여 Excel 시트에서 255개 이상의 열을 얻는 방법 (0) | 2023.07.09 |
각도 오류: '구성 요소 'X'가 모듈에 포함되어 있지 않습니다.하위 모듈에 선언된 경우 (0) | 2023.07.09 |
소규모 개발 팀을 위한 Git 브랜치 전략 (0) | 2023.07.09 |
탁월한 전자 메일 검증 공식 (0) | 2023.07.09 |