한달 지나서 글을 수정하려니...안되어서 새로 작성합니다 ㅠ
두번째 글에 통합테스트 관련하여 글을 썼는데, 이에 대한 예시를 마지막에 못써서 이번글에 자세히 작성해보겠습니다.
먼저 프로젝트를 진행하면서 여러 테스트를 해보게 되는데 그중 가장 큰 것은 전체 흐름을 테스트 해보는 것이다.
내가 했던 프로젝트 중 금액할인권 신규 회원 자동 생성 프로젝트가 있었는데 이 프로젝트를 예시로 들겠다.
금액할인권 신규회원 자동생성 프로젝트란,
백화점 신규회원이 가입하면 금액할인권 쿠폰을 자동 생성하는 프로세스 구현 프로젝트.
위 프로젝트를 개별 각 모듈은 테스트가 완료되었다고 생각 후 통합테스트를 하게 된다면 어떨까?
일단, 전체 테스트 진행에 있어 신규회원이라는 데이터가 필요할 것이다.
(참고로 운영에 반영 전 모든 모듈은 개발 환경에서 진행한다.)
TEST DB에 임의 대상자 데이터를 운영에서 끌어와 insert를 하고, 신규회원 기준으로 데이터를 변경한다.
** 신규회원 기준 : Ecoupon_yn = 'N'신규 회원이 생겼으면, 이 프로젝트의 핵심인 쿠폰 자동 생성 프로세스를 실행한다.
실시간 프로세스가 올려져있는데 신규회원 데이터 확인때문에 stop이지만, 이를 start함으로 실행하면 된다.
쿠폰 생성 프로세스 안에서 또다른 모듈이 있을 것이다. 이 모듈이 잘 연결되어 진행되는지 확인한다.
쿠폰 생성 프로세스에서 호출하는 프로시저가 신규회원 데이터를 확인하고 정상적으로 실행되는지 확인한다.
이때 로그를 찍게 하여 로그로 확인이 가능하다.마지막! 호출된 프로시저가 정상적으로 돌았는지 확인한다.
: 로그 확인 / 프로시저에서 insert 되는 테이블 데이터 확인
1)금액할인권 대상자 테이블 insert 확인 후, 금액할인권 쿠폰 상세 테이블 데이터 확인
2)만일 신규회원을 인식하지 못하는 오류가 발생하거나 중간에 서버가 끊겨서 절반만 시행되는것을 생각하고
모듈마다 에러 로그메시지를 설정해놓으면 추후에 오류 발생 시 확인하기가 편하다.
즉, 오류 발생가능 시점에 로그를 남기는 부분도 중요한 것 같다.
이렇게 쿠폰 테이블에 데이터가 들어온 것을 마지막으로 확인하면, 일련의 과정들이 정상적으로 진행되어 하나의 프로세스가 완료된 것을 알 수 있다.