頭脳一式

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

【Java】Junitのアノテーションとアサーション

まずはアノテーションの説明から。

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

注意すべき要点は以下。

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

こんなことしか思いつかないけど凄く役に立ちそう。
「@BeforeClass」と「@AfterClass」の使用例

@BeforeClass
public static void setUpBeforeClass() throws Exception {
  //データベースに接続
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
  //データベース接続の切断
}

「@Before」と「@After」の使用例

static int testNo = 1;

@Before
public void setUp(){
    System.out.println("テストNo"+testNo+"開始。");
}

@After
public void tearDown(){
    System.out.println("テストNo"+ testNo++ +"終了。");
}

執筆中…