Java 단위테스트 Junit 에서 Suite 로 클래스 집합 테스트 하기 |
개발환경 : window 7 64bit, Eclipse Kepler, Android 4.2.2 |
테스트할 클래스가 하나가 아니라 여럿이라면 묶어서 하고 할 것이다.
여러 경우의 수를 만들어 한꺼번에 테스트 하는 것이다. 이런 다중 테스트를
위해 Junit Suite 를 만들었다. 테스트 러너가 스위트를 실행시키면
어떤 테스트 케이스를 실행시킬지 스위트가 결정한다.
기본 기능은 스위트에 포함된 클래스중 @Test 어노테이션이 들어간
함수를 인식하고 테스트가 이루어진다. 먼저 주요 어노테이션 두개를
알아보자. @RunWith, @Suite 가 있다.
@RunWith 는 Junit 에서 어떤 구동 클래스를 사용할 것인지에 대한 설정이다.
그러므로 파라미터는 org.junit.runner.Suite 가 된다.
@Suite 는 테스트 하고자 하는 클래스들을 나열한다. 이 클래스들에 있는 @Test
메서드들을 몽땅 실행하게 되는 것이다.
1. 이클립스에서 Junit 테스트를 위한 셋팅 |
프로젝트에 셋팅이 되어있으면 모르겠지만 안되어있다면 다음과
같이 에러가 날 것이다. Build Path 에 Junit 가 연결되어있지 않기 때문이다.
물론 외부 라이브러리 형태로 참조하면 되겠지만 이클립스에 포함되어
있으므로 굳이 그렇게 할 필요가 없다. Build Path 화면으로 간 후에
Add Library 클릭후 Junit 를 추가하자.
그러면 프로젝트 화면에 아래와 같이 추가 될 것이다.
2. 두개의 Junit Test 클래스 만들기 |
테스트용으로 간단하게 두개의 클래스를 만든다. 내용은 문자열 출력으로 한다.
(1) 테스트 클래스 1
import org.junit.Test; public class TestJunit1 { String message; @Test public void testSalutationMessage() { message = "TestJunit1 실행 "; System.out.println(message); } }
(2) 테스트 클래스 2
import org.junit.Test; public class TestJunit2 { String message; @Test public void testSalutationMessage() { message = "TestJunit2 실행 "; System.out.println(message); } }
3. 두 테스트 클래스를 실행하기 위한 Swite 클래스 |
소스는 간단하다. @RunWith 지정과 @Swite.SwiteClasses 에 테스트 클래스들을
집어넣으면 된다. 그리고 Junit Test 를 실행하자.
import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ TestJunit1.class, TestJunit2.class }) public class JunitTestSuite { }
4. 실행한 결과 |
실행한 결과는 콘솔에 표시된 것 처럼 첫번째클래스와 두번째 클래스에
포함되어있는 함수들을 실행한 것이다. 이런식으로 여러 개의 개별 클래스들을
만들고 Swite 클래스에 포함시킨후 한번에 실행하면 되는 것이다.
참고로 실행시키고 싶지 않은 함수가 있다면 @Ignore 어노테이션을
함수 상단에 붙이면 된다.
'자바(JAVA)' 카테고리의 다른 글
Java 에서 Exception 의 내용을 추출하고 싶을 때 (1) | 2014.02.12 |
---|---|
[Java] 자바 데이터베이스 연동, 오라클(Oracle), MySQL DB 연결 테스트 (0) | 2014.02.09 |
Java 에서 날짜 더하기 (0) | 2014.02.08 |
자바 Junit 기능중 타임 아웃 테스트 하기 (0) | 2013.10.27 |
Java 파일입출력의 다양한 방법들을 배워본다 (1) | 2012.09.28 |
자바 난수 발생 랜덤(Random) 클래스로 데이터를 추출하는 다양한 방법 (0) | 2012.09.26 |
이클립스(Eclipse) SWT 샘플 프로젝트 실행 (0) | 2012.09.20 |
이클립스(Eclipse) 로 SWT 설치후 프로젝트 개발 준비하기 (0) | 2012.09.20 |