인프런 커뮤니티 질문&답변

뜨어어님의 프로필 이미지
뜨어어

작성한 질문수

토비의 스프링 부트 - 이해와 원리

JdbcTemplate과 트랜잭션 매니저 구성

섹션 9 세번째 강의 문의

해결된 질문

작성

·

191

0

 안녕하세요. 강의 정말 잘 보고 있습니다. 다름이 아니라 섹션9 세번째 강의 jdbc transaction manager 설정 및 테스트 하는 과정에서 마지막 부분에 첫번째 테스트는 통과 하지만 두번째 테스트는 실패합니다라고 설명 해주셨는데요, 아래 실제 콘솔을 보면 두번째 테스트가 성공 하고 첫번째 테스트가 실패 하고 있습니다. 그래서 궁금한 점은 junit에서 각 테스트는 코드상에서 위아래와 무관 하게 각 테스트 메서드가 병렬적으로 동작 하고, 그 과정에서 먼저 디비를 터치하고 트랜잭션을 완료 한 테스트가 먼저 성공 하는 것 인지 궁금 합니다.

답변 1

0

토비님의 프로필 이미지
토비
지식공유자

JUnit의 테스트는 별도의 설정을 하지 않으면 병렬적으로 실행되지는 않는 것으로 알고 있습니다.

다만, 테스트 메소드의 실행 순서는 JUnit의 알고리즘에 의해서 결정되기 때문에 항상 작성된 순서대로 동작하지 않을 수 있습니다. 중요한 건 어떤 순서대로 테스트가 실행되더라도 결과가 동일하도록 각 테스트를 서로 영향을 주지 않은 고립된 테스트로 동작하도록 만드는 것입니다.

혹시 테스트 실행 결과가 생각한 것과 다르게 나오고, 이게 궁금하시다면 해당 코드를 GitHub에 올리고 공유해주시면 제가 실행해보고 확인해드리겠습니다.

뜨어어님의 프로필 이미지
뜨어어
질문자

영상에서 테스트의 순서가 메서드 선언 된 순으로 진행되지 않아 병렬 진행 되고 레이스가 붙는 것 일까? 라고 추측 하여 질문 드렸는데, 병렬진행은 별도의 설정이 필요하고, junit 자체적으로 알고리즘이 있다 라고 답변 주셔서 궁금증이 말끔히 해소 되었습니다. 감사합니다!

뜨어어님의 프로필 이미지
뜨어어

작성한 질문수

질문하기