10. Spring Batch 가이드 - Spring Batch 테스트 코드


• 배치 애플리케이션은 웹 애플리케이션에 비해 테스트가 어렵다. 이는 개발자가 직접 DB의 최종 상태나 메세징큐의 발행 내역 등을 확인해야 하며, 로컬 환경에서 배치 애플리케이션을 수행하는 것도 많은 수작업이 필요하기 때문이다. 따라서 테스트 코드의 필요성이 강조되며, 배치 애플리케이션은 웹 애플리케이션보다 테스트 코드 작성이 수월하다.
• 스프링 배치 테스트 코드는 ItemReader의 단위 테스트를 작성하는 것보다 통합 테스트 코드 작성이 더 쉽다. 이는 스프링 배치 모듈들 사이에서 ItemReader만 뽑아내 쿼리를 테스트 해볼 수 있는 환경을 설정하는 것이 복잡하기 때문이다. 따라서 Reader / Processor의 단위 테스트 코드를 먼저 작성한 후 통합 테스트 코드를 작성하는 것이 좋다.
• 주어진 코드는 Spring Batch를 이용한 테스트 코드로, 특정 날짜의 주문 데이터를 저장하고, 이를 통해 총 판매량을 계산하는 작업을 수행한다. JobLauncherTestUtils를 이용해 배치 작업을 실행하고, JobExecution 객체를 통해 작업의 성공 여부를 검증한다.
• `@SpringBootTest(classes={...})`를 통해 테스트에 사용할 설정을 선택하며, `JobLauncherTestUtils`는 테스트 환경에서 배치 작업을 실행하는데 사용된다. 테스트 코드에서는 `JobLauncherTestUtils`를 통해 Job을 실행하고 결과를 검증한다.

북마크
공유하기
신고하기