HOME > 技術情報 > Java > JUnit4

JUnit4

JUnitとは?

Java用の単体テストフレームワーク。

JUnitのようなテスティングフレームワークを活用することで、次のメリットがある。

  1. テストを統一な方法で作成できる
    → 他人が見ても分かりやすい
  2. テストが簡単にできる

また、単体テストコードがあれば、仕様変更時のデグレードを早い段階で発見することができる。

JUnit4の特徴は?

J2SE5。0のアノテーションを取り入れ、テスト記述方法のルールがシンプルになった。

JUnit3との違いは?

記述方法の違いは?

テストクラス

通常テストメソッド

例外検証テストメソッド

テストメソッドの前処理

テストメソッドの後処理

新しい機能は?

パフォーマンス検証テストメソッド

「@Test」の「timeout」要素に実行時間を記述する(ms)。

// 1500ms以下であること。
@Test(timeout=1500)
public void time() throws InterruptedException {
  Thread。sleep(1000);
}

テストを無視する

「@Ignore」を記述する。

@Ignore("実行しない理由を記述する")
@Test
public void foo() {
  String string = "無視する";
  assertEquals("無視する", string);
}

オブジェクト型配列の検証

assertEquals(Object[] array1, Object[] array2);
assertEquals(String message, Object[] array1, Object[] array2);

テストクラスの前処理

「@BeforeClass」を記述する。
テストクラス実行前に一度だけ実行される。

@BeforeClass
public void beforClass() {
  // 前処理
}

テストクラスの後処理

「@AfterClass」を記述する。
テストクラス実行後に一度だけ実行される。

@AfterClass
public void afterClass() {
  // 後処理
}

パラメータの指定

テストクラスに「@RunWith(Parameterized.class)」を記述する。
パラメータ指定に「@Parameters」を記述する。
テスト対象値をパラメータで指定することで、テストコードの増大を防ぐことができる。

パラメータの指定 - テストメソッドが複数ある場合

現状のパラメータ指定の場合、テストメソッド毎パラメータを指定することはできない。
また、テストメソッドが複数ある場合の実行動作以下の通り。

実行順序

アノテーション一覧

アノテーション意味
@Testテスト対象のメソッドに記述する。
exception:例外テストの際、例外クラス名を記述する。
timeout:パフォーマンス検証テストの際、実行時間をミリ秒で記述する。
@Beforeテストメソッドの前処理のメソッドに記述する。
@Afterテストメソッドの後処理のメソッドに記述する。
@BeforeClassテストクラスの前処理のメソッドに記述する。
@AfterClassテストクラスの後処理のメソッドに記述する。
@Ignoreテスト対象外にするメソッドに記述する(テストを実行しない場合に記述する)。
@Parametersテストで使用するパラメータを生成するメソッドに記述する。
@RunWith@Parametersで定義したパラメータを使用する等のテストランナを記述する。

Eclipse関連

サポートしているEclipseのバージョンは?

Eclipse3.2〜

EclipseでJUnit4を使用するには?

  1. [File] -> [New] -> [JUnit Test Case]を選択する。
  2. 一番上のラジオボタンで「New JUnit 4 test」を指定する。

便利なプラグイン


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS