반응형 Spring19 Batch Test Code 작성 및 이슈 해결 1. Batch Test Code 작성 1.1 Batch 통합 테스트 QA를 위해서 가장 최적의 방법은 Test Code 작성입니다. 개발자가 입력과 출력을 하나씩 확인하는 방법이 있지만 Test Code 작성이 가장 안정적이고 편리합니다. Spring Batch에서 Unit Test를 통해 Reader Processor Writer 또한 테스트할 수 있지만, 이 글에서는 Spring Batch Step 들의 통합 테스트에 대해서만 다루도록 하겠습니다. 1.2 SpringBatch Test Lib 1.2.1 JobLauncherTestUtils Spring Batch Job을 테스트 환경에서 실행하게 만드는 Utils 클래스입니다 @SpringBatchTest 을 붙이게 되면 자동으로 JobLaunche.. 2022. 11. 11. Spring Cloud Contract를 이용한 Test 코드 작성 1. CDC(Consumer-Driven Contract) CDC(Consumer-Driven Contract) 정의 소비자(Consumer)의 요구사항 중심으로 제공자(Producer) 서비스를 진화시키기 위한 협업 패턴입니다 Producer: API를 제공해주는 제공자 Consumer: Producer가 제공한 API를 사용하는 소비자 스펙 정의, 문서화, 테스트, 스펙과 일치하는 테스트코드 유지, 모니터링/제어, Gateway 드과 같이 여러 제약 사항이 존재하지만 유연한 커뮤니케이션이 부족하기 마련 입니다 그러므로 CDC를 유연하게 하기 위해서 Spring Cloud Contract 라는 오픈 소스가 개발 되었습니다 과거 CDC Test 방법 E2E 테스트를 진행과 정에서는 주로 WiredMock.. 2022. 9. 17. SpEL(Spring Expression Language) SpEL 1. 개념 정의 Spring Expression Language(SpEL)로 불립니다 run time에 객체 그래프의 쿼리하고를 지원하고, 객체를 조작할 수 있는 강력한 표현식 언어 입니다 cf) 파라미터 참조 와 같이 그래프화 한것들 jpa에 Entity graph와 비슷하다고 생각하면 됩니다 문자열 template과 같은 곳에 주로 많이 사용됩니다 Spring 내부에 프로젝트로도 존재하지만, 필요하다면 parser와 같은 여러 클래스를 생성하거나 infra 설정을 통해서 SpEL을 독립적인 표현 언어 처럼 사용할 수 있습니다 제공 기능들 리터럴 표현식 (Literal Expression) Boolean과 관계형 Operator (Boolean and Relational Operator) 정규.. 2022. 9. 7. Spring Batch Chunk와 Transaction 설정 필자는 chunk 방식에서 transaction이 언제 설정이 되고 사용되는지 확인하고 싶어서 학습을 시작하게 되었습니다 조사하다 보니 chunk 관련 글로 변경이 되었습니다 일부 코드를 생략을 했지만 필요한 코드는 주석으로 추가 설명을 작성하였습니다. Spring Batch Chunk TaskletStep 정의 transactional 관리하는 객체와 실제 개발자가 작성한 item reader, processor, writer를 호출 하는 ChunkOrientedTasklet를 관리하는 객체 AbstractStep을 상속받은 구현체(전체 flow가 들어있는 Template Callback 패턴 abstract class) Flow public class TaskletStep extends Abstrac.. 2022. 8. 9. 이전 1 2 3 4 5 다음 반응형