JUNIT 4ノート試験用例


原文:http://mwhgjava.iteye.com/blog/774681
テストケースは@Testコメントで識別する必要があります.@Testはメソッドの前にあり、メソッドがテスト例であることを識別します.このメソッドは、パラメータの有無と戻り値のないインスタンスメソッド(public|void|no parameters|not static)である必要があります.
Javaコード
 
收藏代码
  • @Test public void testAdd(){   
  •         assertEquals(5,2+3);   
  •     }  
  • @Test public void testAdd(){
    		assertEquals(5,2+3);
    	}
    

    @Test@interfaceはtimeoutメソッドとexpectedメソッドを定義します.@Test (timeout=?)その中で「?」long型の数字で、単位はミリ秒です.使用例の実行時間がこの時間を超えた場合、すなわち、使用例が失敗したと断言することを示す.
    Javaコード
     
    收藏代码
  • @Test (timeout=5000)  
  • @Test (timeout=5000)
    

    @Test (expected=?)その中で「?」javaです.lang.Throwableおよびそのサブクラス.この例は、実行中に所望のThrowableが投げ出された場合、断言は成功し、そうでなければ断言は失敗することを示す.
    Javaコード
     
    收藏代码
  • @Test (expected=Throwable.class)    
  • @Test (expected= NullPointerException.class)   
  • @Test (expected=Throwable.class) 
    @Test (expected= NullPointerException.class) 
    

    テスト・インスタンスの断言に失敗した場合、テスト・インスタンスの実行が終了することを宣言します.JUnit 4は、各テストケースのテストクラスインスタンスを作成します.
    Javaコード
     
    收藏代码
  • public class MyTestcase {   
  •     public MyTestcase(){   
  •         System.out.println("new Instance");   
  •     }   
  •     @Test public void test1() {   
  •         System.out.println("@test1");   
  •         assertTrue(true);   
  •     }   
  •     @Test public void test2(){   
  •     System.out.println("@test2");   
  •         assertEquals(5,2+3);   
  •     }   
  • }  
  • public class MyTestcase {
        public MyTestcase(){
        	System.out.println("new Instance");
        }
    	@Test public void test1() {
        	System.out.println("@test1");
        	assertTrue(true);
        }
    	@Test public void test2(){
        System.out.println("@test2");
    		assertEquals(5,2+3);
    	}
    }
    

    コード実行では、次の結果が印刷されます.
    new Instance @test1 new Instance @test2
    JUnit 4仕様では,異なるテストケースはインスタンス変数を共有せず,仮想クラスでもテストケースに一定の実行順序があるとは限らない.テスト例の実行順序は、テスト実行器の呼び出し順序によって決定され、異なるテスト実行器の実行順序が異なり、同じテスト実行器の呼び出し順序も異なる場合があります(例えば、マルチスレッドテスト実行器).