더북(TheBook)

이 장에서 다루는 내용

통합 테스트

서버에서 애플리케이션을 테스트하는 방법

스프링 부트 테스트 유틸리티

 

 

어디로 가고 있는지 모를 때 길이 당신을 데려간다는 말이 있다. 하지만 소프트웨어를 개발하는 동안 어느 방향으로 가고 있는지 모른다면 어디에도 쓸 수 없는 오류 가득한 애플리케이션이 되고 말 것이다.

애플리케이션을 개발할 때 어디로 가고 있는지 확실하게 알 수 있는 방법은 예상대로 작동하는지 확인할 수 있도록 테스트를 작성하는 것이다. 테스트가 실패한다면 해야 할 일이 더 남은 것이다. 테스트를 통과한다면 목표에 잘 도달한 것이다. 적어도 작성할 수 있는 테스트가 더 있다는 것을 알기 전까지는 말이다.

테스트를 맨 처음에 작성하든 코드를 모두 작성한 후 작성하든 테스트를 작성하는 것은 코드의 정확성뿐만 아니라 예상대로 잘 진행하는지 확인하는 데 매우 중요하다. 또 테스트는 애플리케이션을 계속해서 발전시키는 과정에서 오류가 발생하는 것을 막는 좋은 안전 장치이기도 하다.

보통 유닛 테스트를 작성할 때 스프링은 주된 관심사가 아니다. 스프링이 권장하는 느슨한 결합과 인터페이스 기반 설계 덕분에 유닛 테스트를 더 쉽게 작성할 수 있지만, 스프링이 유닛 테스트에 반드시 관여하지는 않는다.

통합 테스트는 스프링의 도움이 필요하다. 스프링을 이용하여 제품 출시용 애플리케이션의 컴포넌트를 구성하고 연결한다면 테스트에서 해당 컴포넌트를 구성하고 연결할 때도 스프링을 사용해야 한다.

스프링의 SpringJUnit4ClassRunner는 JUnit을 기반으로 애플리케이션을 테스트할 때 스프링 애플리케이션 컨텍스트 로드를 도와준다. 스프링 부트는 스프링의 통합 테스트 지원을 기반으로 스프링 부트 애플리케이션을 테스트할 때 자동 구성을 하고 웹 서버를 시작한다. 또 스프링 부트는 몇 가지 유용한 테스트 유틸리티를 제공한다.

이 장에서는 스프링 부트로 통합 테스트를 할 수 있는 방법을 모두 살펴볼 것이다. 먼저 스프링 부트 애플리케이션 컨텍스트를 완전히 활성화하고 테스트하는 방법을 살펴보자.

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