JUnit 4勉強まとめ

2068 ワード

詳細
最近JUnit 4の文書を見て、いくつかの使い方をまとめました.
1.テストクラスは、インタフェースを実装したり、クラスを継承したりする必要はありません.テストするメソッドには、メソッドヘッダにJUint 4のAnotation@Testを付けるとよい
package junit.study;
import static junit.framework.Assert.*;
public class JunitStudyTest1{

@Test
public void testMethod1(){
//......

}
}

2.試験方法名は厳格なフォーマット要求を必要とせず、上記の例のように、方法は勝手に名前をつけることができる.setup()とtearDown()が含まれます.これらの方法にAnotation@Before,@Afterを付けるだけでよい
    @Before
    public void initMethod() throws Exception
    {
...
    }

    @After
    public void finalMehtod() throws Exception
    {
...
    }

3.注意@BeforeClass,@AfterClassと@Before,@Afterの違い
@BeforeClassと@AfterClass
各クラスに注釈できる方法は1つしかありません.
メソッド名は関係ありません
クラスごとに1回実行
現在のクラスの@BeforeClassメソッドを実行する前に、スーパークラスの@BeforeClassメソッドを実行します.スーパークラスで宣言された@AfterClassメソッドは、現在のクラスのすべてのメソッドの実行後に実行されます.
共通および非静的でなければなりません.
@BeforeClassメソッドが例外を投げ出しても、すべての@AfterClassメソッドが実行されることを保証します.
@Beforeと@After
複数のメソッドは注記できますが、実行順序は特に指定されず、リロードメソッドは実行されません.
メソッド名は関係ありません
各テストメソッドの実行前または実行後に実行
スーパークラスの@Beforeは、すべてのサブクラスのこのメソッドが実行される前に実行されます.スーパークラスの@Afterは、すべてのサブクラスのメソッドが実行された後に実行されます.
共通および非静的でなければなりません.
1つの@Beforeまたは@Testメソッドが例外を投げ出しても、すべての@Afterメソッドが実行されることを保証します.
高価なリソースを一度だけ割り当てて解放する必要がある場合は、@BeforeClassと@AfterClassが役に立つかもしれません.我々の例では、AbstractParentは、startTestSystem()およびstopTestSystem()メソッドにおけるこれらの注釈を使用して、試験システム全体を起動および停止する.
4.Suite使用
@RunWith(Suite.class)
@Suite.SuiteClasses({
    OneTest.class,
    TwoTest.class,
    ThreeTest.class
})
public class TestSuite
{
 
}

5.試験方法を一時的にブロック@Ignore
   

    @Ignore("not ready yet")
    @Test
    public void testMethod3()
    {
        
    }

6.Junit4 Assert API
http://junit.sourceforge.net/javadoc_40/org/junit/Assert.html