반응형

이번 시간에는 스프링 배치에서의 테스트 코드 작성을 학습 하였습니다.

 

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에 여러개의 잡을 등록 하신다면 빈이 여러개 있어 에러가 발생하겠습니다.

 

 

 

반응형

+ Recent posts