오늘 통합 환경 테스트 코드를 작성하면서, 갑자기 헷갈린 게 있는데, 단위 테스트랑 통합 환경 테스트가 헷갈렸다.
어디서 헷갈렸나!!!!
나는 통합 환경 테스트를 서비스 레이어 부터 DB까지 건들이는 테스트 코드로 짜고 있었는데
내가 지금 단위 테스트를 하는 건가? 통합 환경 단위 테스트인건가? 머릿속이 복잡해지면서 헷갈리기 시작했다.
그래서 검색을 해봤는데 어떤 글은 컨트롤러부터, 어떤 글은 서비스 부터... 등등
다 다른 것이다
뭐지???
우선 결론부터
통합 환경 테스트
스프링 기준으로
통합 환경 테스트는 스프링 컨테이너가 돌아가는 환경이다.
통합 환경 테스트는 실제 DB를 건들인다.
실제 어플리케이션 환경에서 동작하는 방식을 테스트하려는 목적
단위 테스트
단위 테스트는 스프링 컨테이너가 돌아가지 않는 환경이다.
단위 테스트는 실제 DB를 건들이지 않는다
개별마다 예상대로 작동하는지 확인하려는 목적
일반적으로 이런 차이가 있다.
그러면 통합 환경 테스트는 컨트롤러 부터 DB까지, 서비스 부터 DB까지 등등 스프링 컨테이너가 돌아가는 환경이라면 통합 환경 테스트라고 하는 것이다.
팀 마다 혹은 사람 마다 어떤게 통합 환경 테스트다! 는 계속 바뀔 수 있는 것
둘의 목적에서 결과가 또 차이 나는데, 통합 환경 테스트는 어느 부분에서 예상이랑 다른 건지 뭉뚱 그려서 알려주는 반면 단위 테스트는 어느 부분에서 예상과 다른지 단위 테스트를 많이 작성할 수록 자세히 알려준다는 점이다.
'TIL' 카테고리의 다른 글
TIL 2023-12-31 통합 테스트 환경변수 오류 날 때 환경변수 자동 설정하기 (0) | 2023.12.31 |
---|---|
TIL 2023-12-29 CI/CD 흐름 (0) | 2023.12.30 |
TIL 2023-12-27 팀 프로젝트 위치 변경 로직 구현 - 삽입 정렬 (0) | 2023.12.28 |
TIL 2023-12-26 @ColumnDefault 과 Nullable (0) | 2023.12.26 |
TIL 2023-12-22 의존성에 대한... (0) | 2023.12.22 |