반응형
Suite annotation (@Suite)란?
JUnit을 통해 여러 테스트를 만들다 보면 각 클래스 네임에 맞는 테스트 들이 들어갈 것이고
그러한 테스트를 만들다 보면 여러 클래스가 한번에 테스트 되기를 바라는 경우도 있다.
예를 들어보자.
A 클래스는 야구 선수인지 파악하는 테스트를 모아두었고
B 클래스는 축구 선수인지 파악하는 테스트를 모아두었다.
이러한 OO 선수인지 파악하는 테스트를 한번에 하고 싶은데 하나하나씩하면 매우 번거로울 것이다.
이를 위해 Suite라는 어노테이션을 이용하면 이 테스트를 묶음 단위로 진행 할 수 있다.
기본 기능은 스위트에 포함된 클래스중 @Test 어노테이션이 들어간 함수를 인식하고 테스트가 이루어진다. 먼저 주요 어노테이션 두개를 알아보자.
@RunWith, @Suite
@RunWith 는 Junit 에서 어떤 구동 클래스를 사용할 것인지에 대한 설정이다.
그러므로 파라미터는 org.junit.runner.Suite 가 된다.
@Suite 는 테스트 하고자 하는 클래스들을 나열한다. 이 클래스들에 있는 @Test 메서드들을 몽땅 실행하게 되는 것이다.
예제 코드
Test runner가 Suite를 실행시키면 이때 Suite가 어떤 테스트를 실행할 지 결정해준다.
아래에서는 SoccerPlayerTest, BaseballPlayerTest 순서로 테스트를 해준다.
package com.example.myapplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import static org.junit.Assert.*;
@RunWith(Suite.class)
@Suite.SuiteClasses({SoccerPlayerTest.class, BaseballPlayerTest.class})
public class SuiteTest {
}
테스트 1
package com.example.myapplication;
import org.junit.Test;
public class SoccerPlayerTest {
@Test
public void testSoccerPlayer(){
System.out.println("testSoccerPlayer");
}
}
테스트 2
package com.example.myapplication;
import org.junit.Test;
public class BaseballPlayerTest {
@Test
public void testBaseballPlayer(){
System.out.println("testBaseballPlayer");
}
}
반응형
'Applied > Unit Test' 카테고리의 다른 글
[JUnit] private 메서드, 변수 테스트 방법 (1) | 2020.02.29 |
---|---|
[JUnit] hamcrest를 이용한 test code 만들기 (0) | 2020.02.08 |
[JUnit] JUnit Parameterized (0) | 2020.02.06 |
[Espresso] Espresso architecture and workflow (0) | 2020.02.05 |
[JUnit] Espresso를 위한 JUnit 기초 (0) | 2020.02.03 |