spring
Spring Test
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
Table of Contents
Spring Test #
TDD(Test Driven Develop)란 #
- 테스트 주도 개발(Test Driven Development, TDD)은 익스트림 프로그래밍 개발방법론의 실천 방안 중 하나이다. 개발이 이루어진 다음 그것이 계획대로 잘 완성되었는지 테스트 케이스를 작성하고 테스트하는 타 방식과는 달리, 테스트 케이스를 먼저 작성한 다음 테스트 케이스에 맞추어 실제 개발 단계로 이행하는 개발방법론을 말한다. Spring Test도 이 방법론 안에 포함되는 방법이다.
TDD 진행 단계 #
- 1단계: 입력과 출력 결정
- 2단계: 함수 시그니처 선택
- 3단계: 기능상 아주 작은 하나의 관점으로 판단
- 4단계: 테스트 구현
- 5단계: 코드 구현
TDD 장단점 #
장점 #
- 내구성 있는 객체 지향적인 코드 생산 가능
- 오류 시 재설계 시간의 단축
- 디버깅 시간의 단축
- 테스트 문서의 대체가능
- 추가 구현의 용이
단점 #
- 초기 설계 시간의 소요
- 테스트 원칙 고수
- 코드의 생산성 떨어짐
- 테스트 코드의 학습 필요
Spring Test란 #
-
Spring Test는 스프링 프레임워크에서 제공하는 통합 테스트 및 스프링 MVC 통합 테스트를 지원하다. Java 코드에 대해서 스프링 컨테이너 생성, 트랜잭션, DB와 연동 관리를 지원하며 웹 관련 Mock 테스트를 위한 객체를 지원한다.
-
Mock 참조 : http://www.incodom.kr/Mock
실행환경 및 관련 툴 #
- 실행환경 : JUnit
- 툴 : Eclipse(또는 전자정부프레임워크),InteliJ, NetBeans
JUnit 이란 #
- Junit은 단위테스트 도구이다. 외부 라이브러리를 통한 테스팅 프로그램을 작성하여 System.out.println 으로 번거롭게 콘솔 창에서 디버깅 작업을 하지 않아도 된다. 프로그램 테스트 시 걸릴 시간 및 환경도 관리할 수 있게 해주는 오픈소스이며 시스템에 구현 목표의 어느 정도 개발이 진행되면 프로그램에 대한 단위 테스트는 반드시 수행돼야 하는 작업이다. Junit은 보이지 않고 숨겨진 단위 테스트를 끌어내어 정형화시켜 단위테스트를 쉽게 해주는 테스트용 Framework로 쓰이고 있다.
JUnit의 특징 #
- 단위 테스트 Framework 중 가장 많이 쓰이는 도구이다.
- 문자 혹은 GUI 기반으로 실행된다.
- 단정문으로 테스트 케이스의 수행 결과를 판별한다.(assertEquals(예상값, 실제값)
- 어노테이션으로 기능들을 간단하게 지원하여 쉽게 접근할 수 있다.
- 결과는 성공(녹색), 실패(붉은색) 중 하나로 표시하여 명확한 결과를 알 수 있다.
JUnit 적용 단계(Eclipse) #
사전 설치 도구 #
- JDK 5+ version 이상(JUnit버전에 따라 변경)
- Eclipse(또는 전자정부프레임워크)
JUnit 라이브러리 추가 #
-
JUnit을 사용하려면 프로젝트에 JUnit 라이브러리가 필요하다. Maven 프로젝트는 의존관계 설정으로 라이브러리를 Project Object Model(POM.xml)에 추가하여 JUnit을 추가한다.
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${org.springframework-version}</version> </dependency>
그림 1. JUnit 라이브러리 추가 (출처: JUnit)
프로젝트 패키지 구성 #
-
JUnit 테스트를 하기 위해서는 테스트 대상 클래스와 테스트 클래스는 같은 패키지 내에 있어야 한다. Maven 프로젝트를 생성하게 되면 Maven 관례에 따라, 그림과 같은 프로젝트 구조가 기본적으로 생성된다.
-
디렉토리 /src/main/java/는 자바 코드를 보관한다.
-
단위 테스트의 소스는 디렉토리 /src/test/java/ 디렉토리에 보관한다.
-
테스트하고자 하는 클래스가 포함된 패키지 명과 동일하게 테스트 클래스를 포함하는 패키지도 동일하게 구성한다.
-
테스트 대상 클래스와 테스트 클래스의 생성하는 예이다.
그림 2. 프로젝트 패키지 구성 (출처: JUnit)