-
Notifications
You must be signed in to change notification settings - Fork 1
Reactive MongoDB Repository 테스트 작성 가이드
아래 문서의 내용을 베이스로 하여 추가적인 내용에 대해 기술합니다. 먼저 아래 문서를 살펴보기를 권장합니다.
@DataMongoTest
@ActiveProfiles("tc")
@Testcontainers
@ExtendWith(MongoDBTestSupportExtension.class)
@ContextConfiguration(classes = {
ReactiveMongoDBConfiguration.class,
DefaultUserReactiveRepository.class,
})
@EnableAutoConfiguration
class DefaultUserReactiveRepositoryTest implements TestContainersReactiveMongoDBTest {
@Autowired
@Qualifier("defaultUserReactiveRepository")
private DefaultUserReactiveRepository defaultUserReactiveRepository;
@Autowired
private ReactiveMongoTemplate reactiveMongoTemplate;
@Override
public ReactiveMongoTemplate getReactiveMongoTemplate() {
return reactiveMongoTemplate;
}
@DisplayName("User 데이터 저장 기본 테스트")
@Test
public void saveTest() {
}
}
Reactive MongoDB Repository 를 테스트 하기 위해서는 테스트 클래스의 TestContainersReactiveMongoDBTest
인터페이스를 구현해야 합니다. MongoDBTestSupportExtension
이 getReactiveMongoTemplate()
메소드를 통해 ReactiveMongoTemplate
를 주입받아 사용하게 됩니다.
MongoDB 테스트에 필요한 기본적인 어노테이션 입니다.
profile을 ‘tc’ 로 지정하여 테스트를 수행합니다.
이 어노테이션이 지정되면testcontainers
구성요소가 초기화 됩니다.
Reactive MongoDB Repository 테스트를 수행하는데 필요한 처리를 담당하는 extension 클래스인 MongoDBTestSupportExtension
을 적용합니다. 테스트 케이스를 수행할 때 마다 실행해야 하는 코드의 자동화를 담당합니다.
프로젝트 구성에 맞추어 ReactiveMongoDBConfiguration
클래스 (src/main/java 내의 @Configuration 클래스) 와 테스트 대상이 되는 Repository 구현 클래스를 지정해야 합니다. 위의 예제 코드에서는 DefaultUserReactiveRepositoryTest
를 테스트 하는 경우에 대한 코드 입니다.
@ContextConfiguration
에서 지정한 클래스들에 대한 구성을 자동화합니다.