Junit/Mockito

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

용식 2008. 6. 10. 15:03

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을 이용한 테스트 케이스 클래스를 작성 할 수 있습니다.

출처 : 김풍주대리님^^