레시피 16-11 마치며

umtuk·2022년 1월 28일
0

마치며

자바 애플리케이션을 테스트하는 기본 개념과 기법
JUnit과 TestNG는 자바 플랫폼에서 쌍벽을 이루난 테스트 프레임워크
단위 테스트는 하나의 프로그래밍 단위(객체 지향 언어에서는 대부분 클래스나 메서드)를 수행하는 테스트
다른 단위와 의존 관계가 맺어진 단위는 스텁과 목 객체를 이용해 의존 관계를 시뮬레이션하면 좀 더 쉽게 테스트 가능
통합 테스트는 여러 단위를 하나의 다누이로 바라보고 수행하는 테스트

웹, 레이어에 있는 컨트롤러는 대부분 테스트하기 어려움
스프링이 제공하는 서블릿 API용 목 객체를 이용하면 웹 요청/응답 객체를 시뮬레이션해서 웹 컨트롤러를 쉽게 테스트 가능
여러 컨트롤러를 연계하여 테스트할 때 스프링 목 MVC 사용
REST 기반의 클라이언트도 마찬가지
스프링의 MockRestServiceServer를 이용해 외부 시스템을 모방하면 REST 클라이언트를 테스트하는 데 큰 도움

스프링 테스트 지원 기능을 활용하면 빈 구성 파일에서 애플리케이션 컨텍스트를 가져와 여러 테스트를 실행하는 동안 테스트 코드에서 캐싱 등 여러 가지 방법으로 애플리케이션 컨텍스트 관리 가능
액세스한 애플리케이션 컨텍스트에서 받아온 테스트 픽스처를 자동으로 테스트에 주입 가능
DB를 수정하는 테스트에서는 한 테스트 메서드가 일으킨 변경 사항을 롤백시켜 다음 테스트 메서드가 영향을 받지 않도록 스프링이 알아서 트랜잭션을 관리
스프링이 제공하는 JDBC 템플릿을 이용하면 테스트 데이터를 DB에 간편하게 준비하고 검증 가능

스프링은 테스트 작성에 유용한 공통 애너테이션 지원
대부분 스프링 전용 애너테이션, JUnit에서만 사용 가능
하부 테스트 프레임워크와는 독립적으로 작동

profile
https://github.com/umtuk

0개의 댓글