Junit @Transactional

0

JPA

목록 보기
1/1

Junit을 사용하여 jpa 데이터 검증을 시도할 때 @Transactional을 사용하곤 합니다.

@Test
@Transactional
public void test(){}

다만, 위와 같이 @Transactional을 선언할 경우 테스트를 실행할 때 마다 트랜잭션을 시작하고, 테스트가 완료되면 트랜잭션을 강제 롤백합니다.
이유는 아무래도 테스트 코드 내에서 코드 검증인 만큼 실제 DB의 값이 테스트 환경으로 인해 변경되지 않도록 하기 위해서 강제 롤백을 시키는 것으로 생각됩니다.

@Test
@Transactional
@Rollback(false)
public void test(){}

만약 롤백을 원하시지 않는다면 @Rollback(false) 해당 어노테이션을 추가적으로 작성해주시면 junit 환경에서도 강제 롤백되지 않도록 설정 가능합니다.

profile
컴퓨터공학과 + 실무 = 4 + N = 모르는거 ∞ ...

0개의 댓글