
242
처음부터 제대로 배우는 스프링 부트
9.2.2
더 나은 테스트를 위한 리팩터링
대다수의 경우, 몇 가지 테스트를 실행하기 위해 내장 서버와 함께 전체
ApplicationContext
를 로딩하고 애플리케이션에 있는 모든 기능을 로딩하기는 지나칩니다. 앞서 언급했듯, 단위
테스트는 집중되어야 하고 가능하다면 독립적이어야 합니다. 표면적이 좁고 외부 의존성이 적
을수록 테스트 대상에 초점을 더 집중하게 됩니다.
레이저처럼 한 지점에 초점을 집중하면, 시나리오를 간과하는 일이 줄고, 테스트를 더 엄격하
고 구체적으로, 더 읽기 쉽고 이해하기 쉽게, 더 빠른 속도로 수행하게 됩니다.
상황에 따라 달라지지만, 앞서 가치가 없거나 낮은 테스트를 작성하는 일은 비생산적이라고 말
했습니다. 개발자가 유용한 테스트 추가를 실행에 옮기지 못하는 이유는 테스트 스위트
40
실행
에 시간이 걸리기 때문입니다. 일단 특정 임계치에 도달하면, 이 역시 상황에 따라 달라지긴 하
지만, 이미 깨끗한 빌드를 얻는 데 상당한 시간이 걸렸기 때문에 그 이상의 시간 소모를 주저합
니다. 다행히도 스프링 부트에는 테스트 품질을 높이면서 실행 시간도 줄이는 여러 방법이 있
습니다.
AircraftPosition
의
API
요구사항을 충족하기 위해
WebClient
또는
WebTestClient
를 사