테스트 코드 작성

테스트 방법 선택

동시성 제어 테스트를 위해 테스트 코드작성을 하려고 계획을 했고 가장 처음 만난 문제는

동시성 제어는 단위테스트로 작성해야 하는가 통합테스트로 작성해야 하는가? 에 고민에 빠졌고

동시성 제어는 멀티스레드 환경에서 테스트를 진행해야하고 단위테스트는 각 메서드나

함수 단위로 테스트를 해야하기때문에 통합 테스트로 진행하기로 했다.

테스트 흐름

아래의 순서대로 로직을 작성했고 동시성제어는 성공적으로 작동했다.

하지만 문제점이 발생했다.

  1. 객체를 생성하여 실제 DB에 저장을 한다
  2. 저장 된 객체를 모두 불러온다.
  3. 동시성 제어 테스트를 위해 동시에 서비스 로직을 호출한다
  4. 입차가 성공한 수와 입차가 실패한 수를 모두 저장한다
  5. 입차 성공수와 입차 실패수가 모두 맞는지 검증한다

1차 문제점

만난 문제점은 다음과 같다

  1. 테스트 코드에 Transectional을 적용하면 롤백이 된다고 알고있었지만 동시성 제어 테스트 후 동시성 제어를 테스트한 모든 자료가 DB에 저장되어있었다.