개요
테스트 코드를 작성하며 @Test
와 @SpringBootTest
와 같은 어노테이션을 보게 되었는데 이 둘의 차이는 무엇인지 찾아봤다.
단위 테스트와 통합 테스트
- 단위 테스트: 스프링이나 컨테이너, JPA 등의 도움 없이 순수하게 자바 코드로 테스트하는 것
- 통합 테스트: 스프링과 컨테이너, JPA 등의 도움을 받아 실제 비즈니스 상에서의 환경과 최대한 비슷하게 만들어 테스트하는 것
-> 사진에서 보이듯이 클래스에 @SpringBootTest를 붙인 것과 붙이지 않은 것의 차이이다.
둘의 차이는?
둘의 가장 큰 차이는 결국 실행 시간이다. 단위 테스트는 메모리 상에서 다른 컨테이너의 도움 없이 자바만 실행하므로 굉장히 빠르게 테스트를 할 수 있는 반면, 통합 테스트는 그렇지 않기 때문에 많은 시간이 걸린다.
'Spring' 카테고리의 다른 글
cascade = CascadeType.ALL과 orphanRemoval = true 차이 (0) | 2024.02.27 |
---|---|
Spring과 로컬 DB 연결 시 application.properties의 변수의 값을 할당할 때 따옴표(quote) 작성 시 주의할 점 (0) | 2024.02.14 |
Service 객체의 책임과 Facade 디자인 패턴 (2) | 2024.01.23 |