Spring

단위 테스트와 통합 테스트

jayoon 2024. 1. 25. 15:59

개요

테스트 코드를 작성하며 @Test@SpringBootTest와 같은 어노테이션을 보게 되었는데 이 둘의 차이는 무엇인지 찾아봤다.

단위 테스트와 통합 테스트

단위 테스트 코드

- 단위 테스트: 스프링이나 컨테이너, JPA 등의 도움 없이 순수하게 자바 코드로 테스트하는 것

통합 테스트 코드

- 통합 테스트: 스프링과 컨테이너, JPA 등의 도움을 받아 실제 비즈니스 상에서의 환경과 최대한 비슷하게 만들어 테스트하는 것

 

-> 사진에서 보이듯이 클래스에 @SpringBootTest를 붙인 것과 붙이지 않은 것의 차이이다.

둘의 차이는?

둘의 가장 큰 차이는 결국 실행 시간이다. 단위 테스트는 메모리 상에서 다른 컨테이너의 도움 없이 자바만 실행하므로 굉장히 빠르게 테스트를 할 수 있는 반면, 통합 테스트는 그렇지 않기 때문에 많은 시간이 걸린다.