Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- CloudWatch
- 티스토리챌린지
- 정보처리기사실기 기출문제
- Elasticsearch
- mysql 튜닝
- minikube
- 공부
- Linux
- kotlin
- IntelliJ
- Java
- kotlin coroutine
- APM
- AI
- Spring
- AWS EKS
- kotlin querydsl
- kotlin spring
- 코틀린 코루틴의 정석
- PETERICA
- Kubernetes
- 기록으로 실력을 쌓자
- 오블완
- CKA 기출문제
- 정보처리기사 실기 기출문제
- aws
- Pinpoint
- MySQL
- CKA
- 정보처리기사 실기
Archives
- Today
- Total
피터의 개발이야기
[Spring] Junit 테스트 시 자동 Rollback 설정방법 본문
반응형
ㅁ 들어가며
ㅇ Spring의 테스트 시 자동으로 Rollback 되는 방법을 정리하였다.
ㅁ Transactional 어노테이션
ㅇ 테스트 클래스나 테스트 메서드에 @Transactional 어노테이션을 추가한다.
ㅇ 이 어노테이션은 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후 자동으로 롤백을 수행한다.
ㅇ 이렇게 하면 각 테스트가 독립적으로 실행되며, 이전 테스트의 데이터가 다음 테스트에 영향을 주지 않는다.
ㅁ Rollback 어노테이션 사용
ㅇ 기본적으로 @Transactional이 적용된 테스트는 롤백되지만, 명시적으로 @Rollback 어노테이션을 사용할 수 있다.
ㅇ @Rollback(true)로 설정하면 테스트 후 롤백이 수행되고, @Rollback(false)로 설정하면 롤백이 수행되지 않는다.
ㅁ 샘플 소스
@ActiveProfiles("test")
@SpringBootTest
@Transactional
internal class MemberServiceImplTest @Autowired constructor(
private var memberRepository: MemberRepository
) {
@Test
@Rollback(false)
fun createTestMember() {
val member = Member(
seatNumber = "301",
workType = WorkType.values().toList().shuffled().first()
)
val res = memberRepository.save(member)
println(res.toString())
}
}
ㅁ 함께 보면 좋은 사이트
ㅇ 참고 소스: https://github.com/hyunkwanko/seat-reserve-system
ㅇ 테스트 코드(@Test) 실행 후 데이터 rollback 수행 관리 (rollback 수행하기, rollback 수행하지않기)
ㅇ [JPA] 테스트 코드 실행 후 데이터 rollback 설정하기
반응형
'Programming > Spring' 카테고리의 다른 글
[QueryDSL] fetchFirst()와 fetchOne()의 차이 (0) | 2024.06.29 |
---|---|
[Spring] JUnit5 조건부 테스트 실행방법 (0) | 2024.06.27 |
[Spring] 패치조인(fetchJoin)이란? (0) | 2024.06.23 |
[Spring] Ktlint란, 코딩 컨벤션 (0) | 2024.06.22 |
REST API에서 PATCH와 PUT의 차이점 (0) | 2024.06.16 |
Comments