테스트코드에서 rollback 적용 안됨
835
작성한 질문수 2
안녕하세요 강의 도중 에러를 해결하지 못해서 질문 남깁니다.
예시 중 이체 중 오류발생 시 롤백하는 테스트를 진행하는데,
throw한 에러를 모두 잡아서 rollback 코드까지는 들어가는데, 결과는 롤백이 안되는 상황입니다.

(memberA가 10000원으로 롤백되어야 하는데 안됨)

롤백 코드가 있는 부분은 분명 실행이 된 것이 확인 되는데 막상 결과는 롤백이 되지 않습니다.
답변 2
0
https://drive.google.com/file/d/1ZUpf2qkTbdjnHPOGYmv_bY3Aw2FNFdn4/view?usp=sharing
구글드라이브 링크입니다.
작성한 테스트코드의 MemberServiceV2Test의 이체 중 실패 부분을 실행할 때 롤백이 되지 않는 현상입니다.
해당 코드를 그대로 복사해서 사용하는 MebmerServiceV3_1Test 에서는 제대로 진행이 되는 점의 특이합니다.
1
안녕하세요. 크아앙님
확인해보니 다음 코드가 잘못되어 있었습니다.
MemberServiceV2.bizLogic() 메서드
기존 코드
private void bizLogic(Connection con, String fromId, String toId, int money) throws SQLException {
Member fromMember = memberRepository.findById(con, fromId);
Member toMember = memberRepository.findById(con, toId);
memberRepository.update(fromId, fromMember.getMoney() - money);
validation(toMember);
memberRepository.update(toId, toMember.getMoney() + money);
}변경 코드 - update(con, ...) con을 추가해주세요.
private void bizLogic(Connection con, String fromId, String toId, int money) throws SQLException {
Member fromMember = memberRepository.findById(con, fromId);
Member toMember = memberRepository.findById(con, toId);
memberRepository.update(con, fromId, fromMember.getMoney() - money);
validation(toMember);
memberRepository.update(con, toId, toMember.getMoney() + money);
}감사합니다.
0
안녕하세요. 크아앙님
먼저 전체 테이블을 삭제하고 다시 생성해보시겠어요? 그래도 진행이 안된다면
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 실행 방법을 알려주세요.
2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.
감사합니다.
spring initialiser 어떤걸 선택해야될지 모르겠어요
0
43
2
트랜잭션 템플릿이 체크예외는 커밋하는 이유가 궁금합니다.
0
56
1
jdbc 학습하다 궁금해서 질문드려요
0
88
1
정상이체와 이체중 예외발생 차이
0
73
2
이번 강의부터가 JDBC 직접 사용 맞나요?
0
91
1
순수한 서비스 계층에 대한 의문???
0
84
2
3_4test, 4test 자동 리소스 안됨
0
62
2
데이터베이스 선택 관련 질문.
0
73
2
after 메서드 사용 유무
0
64
2
데이터베이스 접근 및 DB 락
0
59
1
@SpingBootTest, @TestConfiguration
0
59
1
Read Committed 격리 수준 사용 관련 질문
0
53
1
AopCheck Test 부분의 EnhancerBySpring 확인 법??
0
70
2
커리큘럼 관련 질문
0
79
1
서비서 계층 스프링 프레임워크 사용
0
90
1
validation(toMember)의 위치
0
85
2
데이터 계층에서 서비스 로직의 datasource를 인식하는 방법
0
167
2
member 상수 질문
0
127
2
ctrl + F6 이후로 con 인식이 안 됩니다
0
159
2
DrivenManager 와 Connection 반환에 대한 질문입니다!
0
112
1
섹션5 트랜잭션 템플릿관련 질문(이기종 DB)
0
117
1
세션1 테이블 조회결과 그림은 Redo 로그에 속하나요?
0
104
1
트랜잭션이 필요하지 않은 경우 DB 대신 파일 시스템을 사용하는 것이 더 효율적인가?
0
99
1
강의 14분쯤 Exception 질문
0
117
2





