본문 바로가기

Junit/Mockito

[junit] jdk5 + junit4 에서의 어노테이션을 사용한 테스트케이스 클래스 작성

jdk는 어노테이션을 지원하는 jdk5이상..
junit4 ...

본래 junit을 사용한 테스트 클래스 작성은 TestCase를 상속 받고

각각의 테스트 메서드에는 Test가 들어가야 하지만..

아래의 테스트 케이스 클래스를 보면 그런부분이 없다. 그 비밀은 바로..

어노테이션!!!


package test;

import org.junit.Assert;
import org.junit.Test;

public class SomeClassTest { //TestCase를 extends 하지 않아도..

 @Test
 public void normalT() { //메서드가 test라는 이름으로 되어있지 않아도..
  Assert.assertEquals("홍길동만만세", SomeClass.someMethod("홍길동", "만만세"));

 }

 @Test(expected = IllegalArgumentException.class)
//이 메서드에서는 SomeClass.someMethod에서 Exception이 날아오게 되는데
//어노테이션으로 expected를 해주고 있기 때문에 Exception이 날아오면 테스트 통과!
//그러나 저 exception이 아니면 당긍 failure가 나오겠지..

 public void exceptionArg1T() {
  Assert.assertEquals("짠..", SomeClass.someMethod(null, "만만세"));
 }

 @Test(expected = IllegalArgumentException.class)
 public void exceptionArg2T() {
  Assert.assertEquals("짠..", SomeClass.someMethod("홍길동", null));
 }

}


package test;

public class SomeClass {

 public static String someMethod(String msg1, String msg2)
   throws IllegalArgumentException {
  if (msg1 == null || msg2 == null) {
   throw new IllegalArgumentException("null");
  }

  return msg1 + msg2;
 }

}

어노테이션을 사용하여 간단하게 Junit을 이용한 테스트 케이스 클래스를 작성 할 수 있습니다.

출처 : 김풍주대리님^^