강의

멘토링

커뮤니티

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

김민지님의 프로필 이미지
김민지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 기능 테스트

test어노테이션이 붙어있고 transactional어노테이션이 붙어있는 경우에 매번 롤백하나요?

작성

·

230

1

서비스 클래스에 transactional 어노테이션 붙여져 있어도 test코드에서 또 transactional 어노테이션 붙이잖아요 그 이유가 테스트를 여러번 수행해야하고 그때마다 테스트 시 변경한 것들을 되돌려놔야하는데 저 어노테이션이 있으면 롤백해서 그런거라는 답변을 들었는데 test인 어노테이션이 붙어있는 경우에는 롤백을 하는건가요? 원래같으면 뭔가가 잘못된 경우에 롤백하잖아요 수행시마다 롤백하는게 아니라

답변 1

0

안녕하세요. 김민지님, 공식 서포터즈 OMG입니다.

네, 테스트에서 @Transaciotnal이 붙어있는 경우 롤백을 진행하며,  다음과 같이 롤백 기능을 제어할 수 있습니다.

또한 말씀하신 내용 중 테스트코드에선 @Transactional을 선언했지만 실제 구현 코드에서 누락이 된 경우에 대해선 테스트는 성공하더라도 예외가 발생할 수 있습니다.

아래 잘 정리된 글을 보시면 많은 도움 되리라 생각합니다.

https://javabom.tistory.com/103

감사합니다.

김민지님의 프로필 이미지
김민지

작성한 질문수

질문하기