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
- Git
- JPA
- assert
- mockito
- Hibernate
- Cache
- jdbc
- @RequestMapping
- awspring
- 데드락
- @controller
- Batch
- AWS
- OIDC
- fetch join
- spring
- 성능테스트
- 동시성
- @Transaction(readOnly=true)
- oauth2.0
- spring-cloud-starter-aws
- N + 1
- ngrinder
- batch insert
- 정적 팩터리 메서드
- injellij
- MySQLTransactionRollbackException
- Convention
- 이펙티브 자바
- Cannotacquirelockexception
Archives
- Today
- Total
목록test (1)
정리정리
Spring Service 계층 테스트와 데이터 초기화
JPA는 특성상 실제 쿼리를 날리지 않아도 DB의 값이 변경되는 경우가 많습니다. 그리고 보통 영속성 컨택스트의 생명 주기가 서비스 계층과 비슷하기 때문에 서비스 계층 단위 테스트를 할 때는 JPA를 포함시켜 테스트를 많이 합니다. 특히 스프링의 @Transactional은 테스트 코드에 추가할 경우, 테스트가 끝나면 자동으로 트랜잭션을 롤백해주기 때문에 간단하게 JPA를 포함시켜 서비스 계층을 테스트할 수 있습니다. 하지만 그랬다가는 예상치 못하는 오류가 발생하는 경우가 있기 때문에 주의해야 합니다. 이번 포스팅에서는 서비스 계층 테스트 코드에 @Transactional을 붙였을 때 문제점과, @Transactional을 이용하지 않고 테스트 코드를 작성하는 방법에 대해 적으려고 합니다. Spring ..
Test
2023. 3. 20. 21:02