1. Testing 시나리오 작성
1. 요구사항
- API V1.0의 경우 데이터 부정합이 발견되었으며, 이러한 방향을 해결하기 위해 Transaction을 적용
- 데이터 일관성이 지켜지는지 확인
- User수는 10으로 진행
<aside>
💡 Test시 가장 중요한 점
예매 수(Count)의 최대 한도가 BookingLimit와 일치해야 한다. (데이터 일관성)
</aside>
2. Test 절차
- Test Source Code
- 공연 예매 신청 Logic
- Booking Table에 예약되어 있는 예매수를 Count Method로 확인
- TypeORM queryRunner를 사용하여 Transaction 진행
- goods Entity의 BookingLimit을 확인
- Count 수가 BookingLimit보다 많은 경우
→ Error 처리 (’남는 좌석이 없습니다’)
- Count 수가 BookingLimit보다 적은 경우
→ 예매 진행
- 완료가 된 경우 Transaction Commit 진행
- 성공한 경우 성공 메세지 return
- Booking Table에 예약되어 있는 Count 수와 Goods Table의 bookingLimit를 비교하며 예매를 진행한다.
- Source Code
- Server, SQL 환경
- Server : Local 환경 진행 (Code 문제점을 보기 위한 Test)
- SQL : Local 환경 PostgreSQL 진행