인프런 커뮤니티 질문&답변
멤버 서비스 통합 테스트 @Transactional 어노테이션 추가 시 문제
작성
·
463
0
스프링의 통합 테스트 시 JDBC {Api/Template}을 사용하던지 간에 java.lang.IllegalStateException: java.sql.SQLException: Connection is closed 에러가 납니다.
제가 조금 디버깅 해 본 결과 @Transactional 어노테이션이 문제입니다. 혹시나 해서 h2도 소켓 통신 서버 모드로 작동하는 것을 확인하였습니다.
혹시 스프링이나 JDBC 드라이버의 버전 문제인가요? 제가 사용하고 있는 dependencies는 다음과 같습니다. 
퀴즈
순수 JDBC를 사용할 때, 데이터베이스 리소스(연결, Statement 등) 관리가 어려웠던 주된 이유는 무엇일까요?
SQL 쿼리를 직접 작성해야 해서
각 리소스를 사용 후 반드시 직접 닫아줘야 해서
테스트 간 데이터 독립성을 보장하기 어려워서
의존성 주입 설정이 복잡해서
답변 3
1
1
giwankim13
질문자
안녕하세요.
서버 모드 작동 다음과 같이 확인했습니다.
- h2 console:

- application.properties:

오류 메시지의 stack trace는 
이고 제 생각에 해당하는 오류는
인 것 같습니다. 그래서 @Transactional을 떼고 테스트를 하나 하나 실행하면 녹색볼이 뜹니다.
감사합니다.
1
김영한
지식공유자
안녕하세요. giwankim13님
먼저 h2 데이터베이스를 서버 모드로 실행해두었는지 확인해주세요.
만약 그래도 잘 동작하지 않으면
1. 전체 오류 메시지를 보여주세요.
2. application.properties를 보여주세요.
감사합니다.






https://www.inflearn.com/questions/234726 여기를 참고해주세요.