-
[Spring] 통합테스트 vs 단위테스트카테고리 없음 2024. 4. 23. 00:09
통합테스트와 단위테스트의 차이 ?
* 통합테스트
통합테스트는 @SpringBootTest 를 쓰면, 메인 진입점을 포함한 모든 하위 빈들이 ApplicationContext에 등록된다.
그래서 실제 운영과 가장 유사한 환경에 테스트한다는 점이며, 여러 모듈을 통합적으로 모아 이들이 의도대로 흘러가는지 테스트하는 것이 통합테스트인가보다 하였고
모든 빈들을 올리기 때문에 느리고 무겁다.
* 단위테스트
하나의 모듈을 독립적으로 진행하는 작은 단위의 테스트라고 한다. 여기서 모듈은 하나의 메소드 또는 하나의 기능이다.
* 사실 무겁고 느리지만 않으면 통합테스트를 써도되는거 아니야?~
아니다.
제일 큰 차이점은 의존성에 있다.
여러 모듈이 내가 짠 비즈니스 로직에 의존되었을 때 내가 원하는 의도대로 잘 흘러가는지,
서로 어떻게 상호작용하는지 테스트하는 것이 통합테스트
의존관계를 갖고있는 모듈들과 관련없이 오로지 내가 짠 비즈니스 로직만을 테스트한다.
동작을 외부 영향과 분리해서 테스트 대상 클래스(내 비즈니스 로직) 에만 집중할 수 있는 것이 단위 테스트