개발한 대상 코드에 대해 테스트하고자 개발자가 작성한 테스트를 위한 코드로서의 Unit Test 에 대해 가이드한다.
Unit Test란 대상 코드에 대해 테스트하고자 개발자가 작성한 코드로서, 주로 특정 메소드를 실행해서 그 결과가 기대값과 일치하는지 확인하는 형태이며, Unit Test는 서로 독립적으로 수행되어야 한다.
제공하는 테스트 도구는 Unit Test, Mock, DB Test Framework을 통해 TestCase 작성을 지원하고, Test Automation, Test Coverage, Test Reporting 등의 기능을 제공한다.
각 표준프레임워크 개발환경 버전별 사용된 오픈소스는 구성 가이드에서 확인 가능하다.
이름 | 설명 |
---|---|
JUnit | 단위 테스트 클래스 작성과 실행을 위한 기본적인 기능을 제공 |
EasyMock | 단위 테스트 클래스 작성 시 Mocking 을 위해 사용 |
DbUnit | 데이터베이스 관련 Test Fixture 자동 생성 등의 DB Support 를 위해 사용 |
EMMA | Test Coverage 분석 |
Spring Test | Springframework 의 Test 관련 기능 활용 |
Unitils | JUnit, EasyMock, DbUnit, Spring Test, Ibatis, Hibernate 등을 유연한 구조로 엮어서 테스트할 수 있는 기반 구조 및 유틸을 제공 |
Ant | Java-based build tool |
Maven | 프로젝트 관리 도구 |
EclEmma | EMMA Eclipse Plug-in |
Maven Project 인 경우에는 아래와 같은 dependency 를 설정하면 된다.
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> <version>2.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymockclassextension</artifactId> <version>2.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.dbunit</groupId> <artifactId>dbunit</artifactId> <version>2.4.3</version> <scope>test</scope> </dependency> <dependency> <groupId>org.unitils</groupId> <artifactId>unitils</artifactId> <version>2.2</version> <scope>test</scope> </dependency>
✔ 주의: Springframework 2.5 에서는 JUnit 4.5 버전이 동작하지 않으므로, JUnit 4.4 버전을 사용하도록한다.
✔ 주의: Test Automation / Test Reporting / Test Coverage 분석 관련하여서는 Test Automation, Test Reporting, Test Coverage 를 참조하도록 한다.
✔ 필요할 경우 Maven > Update project configuration 를 수행하여 반영할 수 있다.
Unit Test Case 는 다음과 같은 구조로 이루어져 있다.
이를 직접 작성하면 된다.
기본적인 JUnit 기술은 Test Case 을 참조하도록 하며, 필요할 경우 나아가 Mock Support, DB Support 또한 함께 살펴보도록 한다.