테스트에서 @Transactionl어노테이션을 쓰면 테스트 내에서 진행하는 모든 트랜잭션 관련 작업을 하나로 묶어 줄 수 있다.

 

@Transactionl은 애플리케이션의 클래스에 적용할 때와 디폴트 속성은 동일하다.

 

1. @Transactional

중요한 차이점은,

테스트용 트랜잭션은 테스트가 끝나면 자동으로 롤백된다는 것이다.

테스트에 적용된 @Transactional은 기본적으로 트랜잭션을 강제 롤백시키도록 설정~

롤백 테스트 가능 ㅎㅎ 굳


2. @Rollback

그런데,,, 트랜잭션을 커밋시켜서 테스트에서 진행작업을 DB 반영하고 싶다면?!

@Rollback 어노테이션 사용!

 

@Rollback의 기본값은 true라서 

트랜잭션은 적용되지만 롤백을 원치 않는다면 @Rollback(false) 라고 해주면 된닷!

 

 


3. @TransactionConfiguration

테스트 클래스의 모든 메소드에 트랜잭션을 적용하면서 모든 트랜잭션이 롤백되지 않고 커밋되게 하려면?!

일일히 메소드에 @Rollback(false)하지말고,

 

클래스레벨에 부여할 수 있는 @TransactionConfiguration 사용

 

@Transactional

@TransactionaConfiguraion(defaultRollback=false)

public class Test{

    ... ...

}

+ Recent posts