2008년 08월 05일
junit4
출저 http://www.ibm.com/developerworks/jp/java/library/j-junit4/
junit4에서 가장 달라진 점은 우선
1 애노테이션 기능을 들수 있다.
jdk5부터 지원되는 애노테이션 기능을 사용함으로서, 기존에 모든 메소드에 대해서 test를 접두사로 붙여야 하는
불편함을 해소 하였다.
예를 들어 이전 소스에서
public void testAdd() {
}
의 경우
@Test
public void add() {
}
즉 기존에 test라는 이름에 종속 되어야 하는 불편함을 이젠 @Test만 붙이면 어떤 이름이라도 사용가능하게 되었다.
2 Assert를 사용하기 위해 정적으로 Assert클래스를 임포트 해야 한다
이점은 아직 잘 모르겠다.
연구해 봐야 겠다.
import static org.junit.Assert.assertEquals;
생략
@Test
public void add() {
assertEquals(생략,생략);
}
この方法によると、保護されたメソッドを含むクラスをテストケース・クラスが拡張できるため、メソッドをテストから守るのが容易になります
바보 인거 같다... 이 말의 구체적인 예를 찾지 못했다.
3 junit3에서 사용했던 setUp, tearDown() 대신에 @Before,@After 애노테이션을 사용해서 초기화와 클린을 대체 할수 있다.
@Before,@After은 복수개 설정이 가능하다. 순서는... 테스트 안해 봐서 모르겠다... 적힌 순서인가.
내가 알기로는 이것 외에도 몇개의 애노테이션이 더 있었던걸로 기억한다. API 찾아 보자.
最後に、スーパークラスにある初期化やクリーンアップのメソッドを明示的に呼ぶ必要は、もうありません。これらのメソッドがオーバーライドされていない限り、テスト・ランナーは必要に応じて、これらを自動的に呼んでくれるのです。スーパークラスにある@Beforeメソッドは、サブクラスにある@Beforeメソッドよりも前に呼び出されます。(これはコンストラクター呼び出しの順序と反対です。)@Afterメソッドの実行は、これとは逆です。サブクラスのメソッドはスーパークラスのメソッドの前に呼び出されます。そうしないと、@Beforeメソッドあるいは@Afterメソッドが複数ある場合の相対的な順序は保証されません。
역시나 위 글의 의미를 잘 모르겠다.
4 @BeforeClass, @AfterClass 애노테이션은 의미가 잘 안와 닿는다.
테스트 소스를 만들어 봐야 할거 같다.
5 예외를 테스트 한다.
이전의 경우 예외 핸들링을 위해서는 try, catch를 사용했지만 역시나 애노테이션으로 다음과 같이 사용할수 있다.
@Test(expected=ArithmeticException.class)
public void divideByZero() {
int n = 2/0;
}
6 @Ignore를 사용함으로서 실행 시키고 싶지 않은 메소드를 건너 뛸수 있다.
사용방법은 @Test와 동일
7 @Test(timeout=2000) 을 사용함으로서 지정된 시간 이내에 실행되지 않을 경우 실패를 하게 만든다.
8 배열을 비교하는 assertion 메소드가 추가 되었다.
그외 몇개가 더 있는거 같다.
junit3에서 4를 호환하는 방식인거 같다.
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(AssertionTest.class);
}
junit4에서 가장 달라진 점은 우선
1 애노테이션 기능을 들수 있다.
jdk5부터 지원되는 애노테이션 기능을 사용함으로서, 기존에 모든 메소드에 대해서 test를 접두사로 붙여야 하는
불편함을 해소 하였다.
예를 들어 이전 소스에서
public void testAdd() {
}
의 경우
@Test
public void add() {
}
즉 기존에 test라는 이름에 종속 되어야 하는 불편함을 이젠 @Test만 붙이면 어떤 이름이라도 사용가능하게 되었다.
2 Assert를 사용하기 위해 정적으로 Assert클래스를 임포트 해야 한다
이점은 아직 잘 모르겠다.
연구해 봐야 겠다.
import static org.junit.Assert.assertEquals;
생략
@Test
public void add() {
assertEquals(생략,생략);
}
この方法によると、保護されたメソッドを含むクラスをテストケース・クラスが拡張できるため、メソッドをテストから守るのが容易になります
바보 인거 같다... 이 말의 구체적인 예를 찾지 못했다.
3 junit3에서 사용했던 setUp, tearDown() 대신에 @Before,@After 애노테이션을 사용해서 초기화와 클린을 대체 할수 있다.
@Before,@After은 복수개 설정이 가능하다. 순서는... 테스트 안해 봐서 모르겠다... 적힌 순서인가.
내가 알기로는 이것 외에도 몇개의 애노테이션이 더 있었던걸로 기억한다. API 찾아 보자.
最後に、スーパークラスにある初期化やクリーンアップのメソッドを明示的に呼ぶ必要は、もうありません。これらのメソッドがオーバーライドされていない限り、テスト・ランナーは必要に応じて、これらを自動的に呼んでくれるのです。スーパークラスにある@Beforeメソッドは、サブクラスにある@Beforeメソッドよりも前に呼び出されます。(これはコンストラクター呼び出しの順序と反対です。)@Afterメソッドの実行は、これとは逆です。サブクラスのメソッドはスーパークラスのメソッドの前に呼び出されます。そうしないと、@Beforeメソッドあるいは@Afterメソッドが複数ある場合の相対的な順序は保証されません。
역시나 위 글의 의미를 잘 모르겠다.
4 @BeforeClass, @AfterClass 애노테이션은 의미가 잘 안와 닿는다.
테스트 소스를 만들어 봐야 할거 같다.
5 예외를 테스트 한다.
이전의 경우 예외 핸들링을 위해서는 try, catch를 사용했지만 역시나 애노테이션으로 다음과 같이 사용할수 있다.
@Test(expected=ArithmeticException.class)
public void divideByZero() {
int n = 2/0;
}
6 @Ignore를 사용함으로서 실행 시키고 싶지 않은 메소드를 건너 뛸수 있다.
사용방법은 @Test와 동일
7 @Test(timeout=2000) 을 사용함으로서 지정된 시간 이내에 실행되지 않을 경우 실패를 하게 만든다.
8 배열을 비교하는 assertion 메소드가 추가 되었다.
그외 몇개가 더 있는거 같다.
junit3에서 4를 호환하는 방식인거 같다.
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(AssertionTest.class);
}
# by | 2008/08/05 00:43 | junit | 트랙백 | 덧글(2)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
두번째는 테스트 클래스를 상속해서 하위 테스트 클래스를 만들어 테스트 할 경우 순서의 모순이 없이 실행된다는 예기인것 같은데 이것은 [ 상위클래스의 @before -> 하위클래스 @before-> @test -> 하위클래스 @after-> 상위클래스 @after 의 순서로 실행된다. ] 의 이야기인것 같습니다.
日本語の意味は分かりました
私がわからないと言った意味は適当な例と活用方法が頭にパッーと来なかったので。。。。