인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박재민님의 프로필 이미지
박재민

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

트랜잭션 전파 활용4 - 전파 커밋

테스트 트랜잭션

작성

·

328

0

테스트 클래스에서 주로 @Transactional 을 클래스 계층에 선언하고 테스트를 전체 롤백시키는 코드를 자주 사용했었는데 권장되지 않는 방식인가여?? 비즈니스 로직의 트랜잭션에 영향을 끼친다고 하셔서 다른 방법이 어떤 게 있을까 궁금해요.

답변 1

0

안녕하세요. 박재민님, 공식 서포터즈 y2gcoder입니다.

개인적인 경험으로는 비즈니스 로직에 @Transactional을 걸지 않았지만, 테스트 코드에 @Transactional을 걸어놓고 테스트했을 때가 있었습니다. 테스트 코드에서는 의도대로 동작했지만 애플리케이션을 구동했을 때 원하는대로 동작하지 않아서 당황했던 기억이 있습니다. 이러한 상황이 아마 실제 비즈니스 로직과 달라지는 문제 상황이라고 생각합니다. 그래서 저는 테스트 코드를 짤 때 @BeforeEach나 @AfterEach를 사용한 메서드 내에서 모든 DB Data를 삭제하는 식으로 초기화를 구성합니다!

 

 

감사합니다.

박재민님의 프로필 이미지
박재민

작성한 질문수

질문하기