Enclosed とは? †
- インナークラスにあるテストクラスを実行する
- 目的
- テスト間の共通処理をくくりだす
- テストケースを人間が見やすくする
サンプルプログラム †
package com.mycompany.sandbox;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
@RunWith(Enclosed.class)
public class EncloseTest {
public static class 与信枠が$100の場合 {
@BeforeClass
public static void setUpClass() {
// データベースに与信枠$100の顧客Aを登録
}
@Test
public void 注文できる() {
// 顧客Aで注文する
// 受注テーブルに顧客Aからの注文があることを検証
}
@Test
public void 与信枠は$100() {
// 顧客Aの与信枠を検証
}
@AfterClass
public static void tearDownClass() {
// 顧客A の注文を削除
// 顧客A を削除
}
}
public static class 与信枠が$0の場合 {
@BeforeClass
public static void setUpClass() {
// データベースに与信枠$0の顧客Bを登録
}
@Test
public void 注文できない() {
// 顧客Bが注文するとエラーになることを検証
}
@Test
public void 与信枠は$0() {
// 顧客Bの与信枠を検証
}
@AfterClass
public static void tearDownClass() {
// 顧客B の注文を削除
// 顧客B を削除
}
}
}
留意点 †
- Eclipse 3.7 からは、うまく動かない
- Netbeans 7.2 は OK、Maven のテストレポートでも OK
- Theory と組み合わせては動かないみたい
Java#xUNIT