이글루스 | 로그인  



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);   
}

by 나림 | 2008/08/05 00:43 | junit | 트랙백 | 덧글(2)

트랙백 주소 : http://gt1000.egloos.com/tb/1923878
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 롤러성큰 at 2008/08/05 10:02
첫번째는 [テストから守るのが容易になります]의 의미가 애매한데 [테스트부터 지키기 쉬워진다 -> 테스트가된다.]라고 멋대로 해석하면 --; [TestCase등 테스트 관련 클래스를 상속하지않고 테트스 대상 클래스를 상속할 수 있으므로 테스트대상 클래스의 protected메소드를 사용할수(테스트)있다.]라는 예기가 아닐런지 ...
두번째는 테스트 클래스를 상속해서 하위 테스트 클래스를 만들어 테스트 할 경우 순서의 모순이 없이 실행된다는 예기인것 같은데 이것은 [ 상위클래스의 @before -> 하위클래스 @before-> @test -> 하위클래스 @after-> 상위클래스 @after 의 순서로 실행된다. ] 의 이야기인것 같습니다.
Commented by gt1000 at 2008/08/05 12:40
ありがとうございます
日本語の意味は分かりました
私がわからないと言った意味は適当な例と活用方法が頭にパッーと来なかったので。。。。

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶