더북(TheBook)

4.4 요약

 

테스트는 품질 좋은 소프트웨어를 제작할 때 중요한 부분이다. 훌륭한 테스트가 없다면 애플리케이션이 기대하는 것처럼 잘 작동하는지 확인할 수 없을 것이다.

개별 컴포넌트나 컴포넌트의 메서드에 중점을 둔 유닛 테스트에서는 스프링이 꼭 필요하지는 않지만, 스프링이 제공하는 느슨한 결합, 의존성 주입, 인터페이스 기반 설계 등 유용한 기법은 유닛 테스트를 더 쉽게 작성할 수 있도록 도와준다. 그렇다고 스프링이 유닛 테스트에 직접 관여할 필요는 없다.

하지만 여러 컴포넌트를 통합 테스트하려면 스프링의 도움이 필요하다. 스프링으로 런타임에 컴포넌트를 연결했다면 통합 테스트할 때도 스프링으로 컴포넌트를 연결해야 한다.

스프링 프레임워크는 스프링 애플리케이션 컨텍스트를 로드하고 컨텍스트의 빈을 테스트로 주입하는 JUnit 클래스 러너의 형태로 통합 테스트를 지원한다. 스프링 부트는 스프링의 통합 테스트 지원을 기반으로 구성 로더로 스프링 통합 테스팅을 지원한다. 이 구성 로더는 스프링 부트가 작동하는 것과 동일한 방식으로 외부 프로퍼티와 스프링 부트 로깅을 포함하여 애플리케이션 컨텍스트를 로드한다.

또 스프링 부트는 웹 애플리케이션을 컨테이너 내부에서 테스트할 수 있어 출시 환경에서 애플리케이션을 실행할 때와 동일하게 컨테이너로 애플리케이션을 실행할 수 있다. 덕분에 테스트가 애플리케이션의 작동을 검증할 때 실제 환경과 가장 비슷한 결과를 제공할 수 있다.

지금까지 반복적인 작업을 간단하게 처리하고 애플리케이션을 작성하는 데 더 집중하려고 스프링 부트 스타터와 자동 구성을 활용하여 간단하지만 제법 완전한 애플리케이션을 만들어 보았다. 스프링 부트가 지원하는 다양한 이점을 활용하여 애플리케이션을 테스트하는 방법도 알아보았다. 다음에 이어지는 5장과 6장에서는 이 주제에서 조금 벗어나 그루비를 이용하여 스프링 부트 애플리케이션을 쉽게 개발하는 방법을 알아볼 것이다. 먼저 5장에서는 그레일즈 프레임워크의 몇 가지 기능을 스프링 부트에서는 어떻게 활용하는지 살펴본다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.