頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?

【JUnit4】Junit4の主要なアノテーション

JUnit4の主要なアノテーション

アノテーション 意味
@BeforeClass テストクラスの開始時に1度だけ実行されるメソッドであることを明示的に示す。
デフォルトはsetUpBeforeClassメソッド。
@AfterClass テストクラスの終了時に1度だけ実行されるメソッドであることを明示的に示す。
デフォルトはtearDownAfterClassメソッド。
@Before 各テストメソッドが呼び出される前に実行されるメソッドであることを明示的に示す。
デフォルトはsetupメソッド。
@After 各テストメソッドの終了後に実行されるメソッドであることを明示的に示す。
デフォルトはtearDownメソッド。
@Test テストメソッドであることを明示的に示す。
@Ignore テストメソッドから除外することを明示的に示す。

注意すべき要点は以下。

  • 「@BeforeClass」と「@AfterClass」はテストクラスの開始時と終了時に1度だけ実行される。
  • 「@Before」と「@After」は各テストメソッドの開始時と終了時に呼ばれる。(テストメソッドの数だけ実行される。)
  • テストメソッド名の頭に「test」を付けなくても「@Test」を付けることでテストメソッド扱いにできる。

4フェーズテスト

下記はテスト対象のコード。

public class classA {
 
 public int add(int x,int y){
  return x + y;
 }
 
}

下記はテストコード。

public class ATest {
 
    static classA A;
    int x = 0;
    int y = 0;

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
         //1.初期化
        A = new classA();
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        //4.全体のテスト終了後の後処理。
    }

     @Before
    public void setUp() throws Exception {
        x = 100;
        y = 200;
    }

    @After
    public void tearDown() throws Exception {
        //4.各メソッドでの後処理。
    }

    @Test
    public void test() {
        //2.テスト実施
        int actual = A.add(x,y);
  
       //3.アサーション
       assertEquals(300, actual);
    }

}