java - 단위 테스트, 데이터베이스를 오염시키지 않고 스프링이 트랜잭션을 관리하도록 하는 방법
阿神
阿神 2017-06-12 09:25:30
0
2
1079

DAO 메서드를 테스트하기 위해 springjunit을 사용하려고 합니다. 트랜잭션 작업에 Spring의 선언적 트랜잭션 관리(예: @Transactional)를 사용하는 몇 가지 메서드를 인터넷에서 보았는데 테스트가 완료된 후 Spring이 테스트 목적을 달성하기 위해 테스트 메서드를 롤백할 수 있습니다.
그런 다음 이 접근 방식을 따라 dao에서 작업을 추가하는 방법을 테스트했습니다. 트랜잭션이 제출된 후 롤백이 성공하지 못했고 테스트한 데이터베이스에 추가 데이터가 있음을 발견했습니다. 처음에는 스프링이 롤백을 수행하지 않아서 그런 줄 알았는데 나중에 콘솔 프린트 정보를 관찰해 보니 롤백 정보가 있는 걸 발견했는데 왜 실패했는지는 명확하지 않았습니다. 몇 가지 관련 솔루션을 찾았지만 해당 솔루션이 내 문제를 해결하지 못했다는 것을 알았습니다. 너무 고민이 많아서 도움을 청하려고 왔습니다. 조언 좀 해주셨으면 좋겠습니다.

다음은 내 코드와 해당 구성입니다

  • DAOImpl의 addUser() 메소드

으아악
  • daos.xml 파일은 그에 따라 구성됩니다

으아악
  • 테스트 카테고리

으아악
  • 일부 콘솔 인쇄 정보

으아악
阿神
阿神

闭关修行中......

모든 응답(2)
我想大声告诉你

스프링 테스트와 결합된 dbunit을 사용하여 테스트하세요

typecho

Transactional은 서비스 레이어 트랜잭션이므로 DAO 레이어에서 트랜잭션을 작성할 필요가 없습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿