작성
·
523
3
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
MemberServiceV2Test를 보면
memberRepository에서 accountTransfer(정상 이체) 테스트를 보면 V1버전과는 다르게 findById를 할 때 트랜잭션의 커넥션을 유지하기 위해 Connection을 파라미터로 전달을 받아서 실행을 해야되는 것으로 알고 있습니다.
하지만 강의에서는 MemberServiceV2Test에서 findById를 사용할 때 memberId 파라미터만 전달하여 V1의 Repository를 사용하고 있는 것 같아서 질문 드립니다.
요약:
MemberServiceV2Test 의 accountTransfer() 테스트에서
이 소스코드를
를 전역 필드에 선언하고
이렇게 소스코드를 수정해야 하는 것이 아닌가 생각해서 질문 드립니다.
---------------------------------
추가
MemberRepositoryV2 클래스에서 findById 메서드가
findById(String memberId)
findById(Connection con, String memberId)
두 개가 동시에 존재해서 강의의 경우도 실행이 된 것 같습니다.
큰 문제는 아니지만 하나의 트랜잭션 내에서 findById(String memberId) 메서드로 여러번 호출할 경우 커넥션이 유지가 안되는 것이 맞는지.. 궁금합니다.
긴 질문 글 읽어주셔서 감사합니다.
항상 좋은 강의 감사합니다!!
답변 1
3
안녕하세요. yongeun612님
질문 주신 것 처럼 이 경우 테스트에서는 서로 다른 커넥션이 사용되는 것이 맞습니다.
여기서 중요한 것은 accountTransfer()안에서만 같은 커넥션이 사용되면 됩니다. accountTransfer()의 시작과 끝이 트랜잭션 범위이니까요^^
테스트에서는 accountTransfer()를 통해 저장된 데이터가 잘 저장되었는지 확인하는 것이 목적이기 때문에, 이 경우 같은 커넥션을 사용해도 되고, 다른 커넥션을 사용해도 됩니다.
감사합니다.
감사합니다!