-
Notifications
You must be signed in to change notification settings - Fork 1
R2DBC PostgreSQL Repository 테스트 작성 가이드
LEE YOUNG WOO edited this page Dec 7, 2022
·
1 revision
아래 문서의 내용을 베이스로 하여 추가적인 내용에 대해 기술합니다. 먼저 아래 문서를 살펴보기를 권장합니다.
@DataR2dbcTest
@ActiveProfiles("tc")
@Testcontainers
@ExtendWith(R2dbcPostgreSQLTestSupportExtension.class)
@ContextConfiguration(classes = {
FlywayConfiguration.class,
UserR2dbcRepository.class})
@EnableAutoConfiguration
class UserR2dbcRepositoryTest {
@Autowired
private UserR2dbcRepository userR2dbcRepository;
@Test
void getAllUsers() {
//given
var now = LocalDateTime.now();
var user = User.builder()
.userId("user8585834")
.password("12345")
.name("사용자1")
.phoneNumber("01099998888")
.createDate(now)
.updateDate(now)
.build();
userR2dbcRepository.insert(user).block();
//when
List<User> users = userR2dbcRepository.getAllUsers()
.collectList().block();
//then
assertThat(users).isNotNull();
assertThat(users.size()).isGreaterThanOrEqualTo(1);
}
}
R2dbc 구성 요소에 대한 테스트를 수행하기 위한 어노테이션입니다. 전체 자동 구성이 비활성화 되고 Data R2dbc 테스트와 관련된 구성만 적용됩니다.
profile을 ‘tc’ 로 지정하여 테스트를 수행합니다.
이 어노테이션이 지정되면testcontainers
구성요소가 초기화 됩니다.
테스트를 수행하는데 필요한 처리를 담당하는 extension 클래스인 R2dbcPostgreSQLTestSupportExtension
을 적용합니다. 테스트 케이스를 수행할 때마다 실행해야 하는 코드의 자동화를 담당합니다.
프로젝트 구성에 맞추어 FlywayConfiguration
클래스 (src/main/java 내의 @Configuration 클래스) 와 테스트 대상이 되는 Repository 구현 클래스를 지정해야 합니다. 위의 예제 코드에서는 UserR2dbcRepository
를 테스트 하는 경우에 대한 코드 입니다.
@ContextConfiguration
에서 지정한 클래스들에 대한 구성을 자동화합니다.