이제까지 진행했던 테스트는 스프링 컨테이너의 간섭을 받지 않고 순수 자바 코드로만 동작하는 '단일 테스트'였다.
스프링 컨테이너와 함께 테스트를 실행하는 '통합 테스트'도 가능하다.
@SpringBootTest 를 통해 간단하게 처리 가능.
스프링 통합 테스트는 단일 테스트에 비해 시간이 오래 걸린다. 테스트 케이스가 많아질수록 그 차이는 커진다. 따라서 스프링에 의존하지 않는 단일 테스트 케이스를 만드는 능력이 중요하다.
스프링 통합 테스트를 진행할 때 @Transactional 을 통해 @AfterEach를 대체할 수 있다.
스프링과 직접 연동되는 테스트이기 때문에 테스트로 인해 디비에 데이터가 저장된 후 다시 테스트를 돌렸을 때 데이터 중복에 의해 오류가 발생할 수 있다. (사실 이건 굳이 통합 테스트가 아니어도 마찬가지)
@Transactional 은 각 테스트 케이스가 실행하기 전 트랜잭션을 생성하고 테스트가 종료되면 해당 트랜잭션을 롤백함으로써 데이터 @AfterEach의 기능을 대신할 수 있다.
'김영한님 스프링 강의 정리 > 입문편' 카테고리의 다른 글
21. Jdbc Template (0) | 2020.12.28 |
---|---|
15, 16, 17, 18, 19 생략 (0) | 2020.12.28 |
14. 자바 코드로 직접 빈 등록 (0) | 2020.12.27 |
13. 컴포넌트 스캔, 의존성 주입 (0) | 2020.12.27 |
11, 12. Service 개발 및 Test (단축키, Test 관련 팁) (0) | 2020.12.27 |