JUnit in Action 책 출간 기념으로 짤막한 글 하나 번역해본다.
원문: JUnit 4 in 60 Seconds
이번 주말에 JUnit 4 라이브러리를 살펴보고 간단히 정리해보았다.
1. @Test
테스트 케이스임을 명시하기 위해 사용한다. “test”와 같은 접두어를 붙일 필요가 없어졌다. 또한 테스트 클래스 역시 더 이상 “TestCase” 클래스를 확장할 필요가 없어졌다.
- @Test
- public void addition() {
- assertEquals(12, simpleMath.add(7, 5));
- }
-
- @Test
- public void subtraction() {
- assertEquals(9, simpleMath.substract(12, 3));
- }
2. @Before and @After
@Before와 @After 애너테이션을 사용하여 “setup”과 “testDown” 메서드 명시한다. 이 메서드들은 각각의 테스트 전후로 실행된다.
- @Before
- public void runBeforeEveryTest() {
- simpleMath = new SimpleMath();
- }
-
- @After
- public void runAfterEveryTest() {
- simpleMath = null;
- }
3. @BeforeClass and @AfterClass
@BeforeClass와 @AfterClass는 클래스 단위의 “setup”과 “teadDown” 메서드에 붙인다. 1회성 setup, tearDown 메서드라 생각하자. 클래스고 파홈한 모든 테스트케이스들의 전후로 단 1회만 실행된다.
- @BeforeClass
- public static void runBeforeClass() {
- // run for one time before all test cases
- }
-
- @AfterClass
- public static void runAfterClass() {
- // run for one time after all test cases
- }
4. Exception Handling (예외 처리)
예외 발생이 예상되는 테스트 케이스에는 @Test 애너테이션에 “expected” 파라미터를 사용한다. 발생해야할 예외의 클래스 명을 적어두면 된다.
- @Test(expected = ArithmeticException.class)
- public void divisionWithException() {
- // divide by zero
- simpleMath.divide(1, 0);
- }
5. @Ignore
무시하고자 하는 테스트 케이스에는 @Ignore 애너테이션을 붙인다. 무시하는 이유도 기입해 넣어주면 좋다.
- @Ignore(“Not Ready to Run”)
- @Test
- public void multiplication() {
- assertEquals(15, simpleMath.multiply(3, 5));
- }
6. Timeout (시간 제한)
제한 시간이 필요하면 “timeout” 파라미터를 이용한다. 단위는 밀리초이다. 테스트가 제한시간 내에 완료되지 못하면 실패 처리된다.
- @Test(timeout = 1000)
- public void infinity() {
- while (true)
- ;
- }
7. 새로운 단언들
배열 비교에 쓰일 수 있는 새 단언 메서드들이 추가되었다. 배열의 길이가 같고, 각 원소들이 대상 배열의 대응되는 원소들과 같아야(equal) 한다.
- public static void assertEquals(Object[] expected, Object[] actual);
- public static void assertEquals(String message, Object[] expected, Object[] actual);
- @Test
- public void listEquality() {
- List<Integer> expected = new ArrayList<Integer>();
- expected.add(5);
-
- List<Integer> actual = new ArrayList<Integer>();
- actual.add(5);
-
- assertEquals(expected, actual);
- }
8. JUnit4Adapter
JUnit 3에서 JUnit 4용 테스트를 실행하려면 JUnit4Adapter를 사용한다.
- public static junit.framework.Test suite() {
- return new JUnit4TestAdapter(SimpleMathTest.class);
- }
자! 그럼 모두 즐코딩~ ^^