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

푸헹헹님의 프로필 이미지

작성한 질문수

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

회원 기능 테스트

userService unit test 중

작성

·

184

1

안녕하세요, 강의를 듣던 중 rollback(value=false)에서 궁금한 점이 생겨서 질문 드립니다.

join 메소드 테스트시, rollback(value=false) 를 붙여 진행하면 h2 에 정상적으로 들어가게 되는데 혹시 데이터가 누적돼서 validateDuplicateMember의 테스트 메소드 실행시 조회되나 확인 해봤더니 memberList가 비어있었습니다.

혹시 각 메소드 test를 진행할 때마다 transactional이 실행되고 이때 각 메소드에서 insert 됐던 data들이 사라지나요?

rollback false 로 하면 commit 되는 것으로 알고 있는데 왜 데이터가 누적되지 않는 지 궁금합니다!

답변 3

0

안녕하세요. ckrt4815님, 공식 서포터즈 David입니다.

오류 관련된 질문에 답변을 드리려면 작성하신 코드(문제 발생 지점, 문제 발생 지점과 연관된 것들)와 에러로그가 필요합니다.

관련된 코드를 함께 올려주시길 요청드립니다.

감사합니다.

0

푸헹헹님의 프로필 이미지
푸헹헹
질문자

추가로 validateDuplicateMember 테스트 메소드에도 rollback false를 둬서 테스트를 돌려보니 

"Transaction silently rolled back because it has been marked as rollback-only" 라는 에러가 발생합니다.

 

이 원인은 무엇인가요??

0

푸헹헹님의 프로필 이미지
푸헹헹
질문자

지금 ============== 를 그어서 로그를 쭉 보니까validateDuplicateMember이 먼저 실행 되네요??

그래서 비어있는 건가 이상해서 질문 드립니다! ㅠㅠ