반응형
이번 시간에는 스프링 배치에서의 테스트 코드 작성을 학습 하였습니다.
1. 테스트 환경은 h2 데이터베이스를 사용하기 위해서 application.yml 파일 내용을 추가해주세요.
spring:
config:
activate:
on-profile: test
jpa:
database: h2
테스트 코드에서 @ActiveProfiles("test") 어노테이션을 통해서 테스트 환경을 구성하겠습니다.
2. 테스트 내에서도 Batch 구동을 위해 Config 파일을 만들었습니다.
@Configuration
@EnableBatchProcessing
@EnableAutoConfiguration
public class BatchTestConfig {
}
test 코드 내에 위의 코드를 작성해주세요. 배치 작업을 위한 설정 어노테이션을 작성하였습니다.
3. 테스트 코드 작성
@SpringBatchTest // JobLauncherTestUtils 사용을 위해서 필수
@SpringBootTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles("test")
@ContextConfiguration(classes = {HelloJobConfig.class, BatchTestConfig.class})
public class HelloJobConfigTest {
@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;
@Test
public void success() throws Exception {
// 실행이 잘되는지 확인
// when
JobExecution execution = jobLauncherTestUtils.launchJob();
// then
Assertions.assertEquals(execution.getExitStatus(), ExitStatus.COMPLETED);
}
}
실행이 잘되는지만 확인을 하였습니다.
지금은 HelloJobConfig를 어노테이션에 등록함으로써 HelloJob이 Job으로 등록이 되었습니다.
잡 런쳐는 스프링일 통해서 HelloJob 잡이 등록이 되었는데요. 혹시나 다른 Job도 여기서 한번에 테스트를 하신다고 ContextConfiguration에 여러개의 잡을 등록 하신다면 빈이 여러개 있어 에러가 발생하겠습니다.
반응형
'Programming > Spring Batch' 카테고리의 다른 글
[Spring Batch] job, step 작업 전-후 확인을 위한 listener(리스너) (0) | 2022.04.07 |
---|---|
[Spring Batch] 스프링 배치 파라미터 입력 및 검증 (0) | 2022.04.05 |
[Spring Batch] 스프링 배치로 데이터를 읽고 쓰기 예제 (itemXXX 사용) (0) | 2022.03.31 |
[Spring Batch] 스프링 배치로 Hello, World 실행하기 예제 (tasklet 사용) (0) | 2022.03.29 |
[Spring Batch] 스프링 배치의 기본 구조 및 큰 그림 그리기 (0) | 2022.03.27 |