본문 바로가기

TEST CODE3

10.1. Spring Batch 단위 테스트 코드 - Reader 편 웹 애플리케이션을 개발하다보면 통합 테스트 보다, 단위 테스트가 훨씬 더 많이 작성됩니다. 단위 테스트로 많은 코드를 검증 후, 통합 테스트 코드를 통해 각 단위가 합쳐졌을때 잘 작동 되는지 검증하곤 하는데요. 스프링 배치를 이용한 배치 애플리케이션에서는 많은 분들이 통합 테스트만 작성할때가 많습니다. 전편에서 말씀드린것처럼 스프링 배치의 단위 테스트 작성이 통합 테스트 보다 복잡하기 때문입니다. 그래서 이번 챕터에서는 다음의 질문들에 대해 이야기해볼까 합니다. Reader의 쿼리가 잘 작동되었는지는 어떻게 확인하지? StepScope를 통한 JobParameter가 잘 할당 된다는 것은 어떻게 확인하지? 부분 부분을 잘개 쪼개서 테스트할 수 있는 방법들을 소개드리겠습니다Reader의 단위 테스트는 다음.. 2019. 10. 20.
10. Spring Batch 가이드 - Spring Batch 테스트 코드 배치 애플리케이션이 웹 애플리케이션 보다 어려운 점을 꼽자면 QA를 많이들 얘기합니다. 일반적으로 웹 애플리케이션의 경우 전문 테스터 분들 혹은 QA 분들이 전체 기능을 검증을 해주시는 반면, 배치 애플리케이션의 경우 DB의 최종상태라던가 메세징큐의 발행내역 등 개발자들이 직접 확인해주는 것 외에는 검증 하기가 쉽진 않습니다. (별도의 어드민을 제공하는것도 포함입니다.) 더군다나 개발자가 로컬 환경에서 배치 애플리케이션을 수행하는 것도 많은 수작업이 필요합니다. 수정/삭제 등의 배치 애플리케이션이라면 한번 수행할때마다 로컬 DB의 데이터를 원복하고 다시 수행하는 작업을 반복해야 합니다. 이러다보니 당연하게 테스트 코드의 필요성이 많이 강조됩니다. 다행이라면 배치 애플리케이션은 웹 애플리케이션 보다 테스트.. 2019. 10. 17.
@SpyBean @MockBean 의도적으로 사용하지 않기 보통 스프링 부트 관련 테스트 코드를 작성할때 @MockBean과 @SpyBean 를 사용했습니다. (참고: SpringBoot @MockBean, @SpyBean 소개) 복잡한 스프링 프로젝트에서도 원하는 코드만 아주 간단하게 Mock 처리를 할 수가 있어 정말 많이 사용했습니다. 그러다 최근에 Spring Boot Cloud 프로젝트의 테스트 코드를 보면서 제가 완전히 잘못하고 있음을 깨달았는데요. 대부분의 테스트 코드가 @MockBean, @SpyBean없이 작성되있었습니다. 마침 정진욱님의 발표도 봤던지라, 저도 @MockBean과 @SpyBean없이 테스트 코드 작성을 시도해보니!완전 큰 깨달음을 얻었습니다. 샘플 예제로 한번 소개드리겠습니다. 예제 예를 들어서, AWS SQS로 메세지를 보내는.. 2018. 7. 21.