DB 독립적인 테스트 구현 - @Transactional

Panda·2022년 2월 22일
0

Spring

목록 보기
8/42

이번 공부할 내용은 되게 간단하게 설명만 하려고 합니다.

DB 테스트를 할때
테스트가 여러가지가 있을 수 있는데

테스트가 공통된 DB에 접근을 해 쿼리를 수행함으로
독립적인 테스트 환경이 아니게 됩니다.

이를 해결하기 위해서 여러 방법이 있지만
@AfterEach 어노테이션으로 테스트가 끝날때마다 DB를 초기화 시킬수도 있지만

오늘은 @Transactional에 대해 알아보려고 합니다.

  • 테스트 케이스에 이 어노테이션이 있으면 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.
  • 테스트 실패시도 롤백 적용.
  • 하지만 Id 값은 롤백 안됨.
  • 적용 단위 : Class 레벨, Method 레벨

@Transactional 의 방법은 롤백을 시켜 독립된 테스트 환경을 구축하는 것입니다.
여러 옵션들도 존재하지만 이것은 프로젝트를 진행하면서 따로 공부해서 사용하면 될것 같습니다.

profile
실력있는 개발자가 되보자!

0개의 댓글