티스토리 뷰

Repository에서 update 관련 쿼리를 변경하고 Junit에서 테스트시 실행이 불가하거나 자동적으로 스프링 부트가 테스트임을 알고 Rollback 하는 바람에 테스트가 정상적으로 이뤄졌는지 DB 확인이 불가능한 경우가 생김.

 

Junit 테스트시 메소드에 트랜젝션임을 명시하는 @Transactional 애노테이션을 적용시켜야 실행이 가능함.

 

@Transactional
@Test
public void viewCntUpdate() {

System.out.println(noticeRepository.updateViewCnt(1L));
}

 

이렇게 하면 정상적으로 쿼리를 짜거나 변경했다면 실행이 됨.

 

하지만 DB 확인시 적용되지 않음을 확인할 수 있음.

 

위에 말한데로 테스트임을 스프링 부트에서 인지하고 Rollback 하기 때문임.

 

따라서 롤백하지 않으려면 @Rollback(false) 애노테이션을 적용해줘야 DB에서 정상 데이터가 바뀜을 확인할 수 있음.

 

@Transactional
@Test
@Rollback(false)
public void viewCntUpdate() {

System.out.println(noticeRepository.updateViewCnt(1L));
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함