테스트 코드 작성
테스트 방법 선택
동시성 제어 테스트를 위해 테스트 코드작성을 하려고 계획을 했고 가장 처음 만난 문제는
동시성 제어는 단위테스트로 작성해야 하는가 통합테스트로 작성해야 하는가? 에 고민에 빠졌고
동시성 제어는 멀티스레드 환경에서 테스트를 진행해야하고 단위테스트는 각 메서드나
함수 단위로 테스트를 해야하기때문에 통합 테스트로 진행하기로 했다.
테스트 흐름
아래의 순서대로 로직을 작성했고 동시성제어는 성공적으로 작동했다.
하지만 문제점이 발생했다.
- 객체를 생성하여 실제 DB에 저장을 한다
- 저장 된 객체를 모두 불러온다.
- 동시성 제어 테스트를 위해 동시에 서비스 로직을 호출한다
- 입차가 성공한 수와 입차가 실패한 수를 모두 저장한다
- 입차 성공수와 입차 실패수가 모두 맞는지 검증한다
1차 문제점
만난 문제점은 다음과 같다
- 테스트 코드에 Transectional을 적용하면 롤백이 된다고 알고있었지만 동시성 제어 테스트 후
동시성 제어를 테스트한 모든 자료가 DB에 저장되어있었다.