すみむらの独り言

思ったことをぶつぶつ呟いていくブログ

junit4の階層化をしてみる

junit4の階層化をしてみる

junit4の階層化をして、テスト結果を見やすく、また、テストケースをカテゴライズして管理を楽にできるようにしたかった。
複数階層にすることもできるようだった。

// テストがないクラスにはEnclosedしていく
@RunWith(Enclosed.class)
public class SampleTest {
  @RunWith(Enclosed.class)
  public class 階層1 {
    // 階層化した場合、テストが含まれるクラスはstatic化
    public static class 階層1_1 {
      @Test
      public void テスト1() { }
      @Test
      public void テスト2() { }
    }
    public static class 階層1_2 {
      @Test
      public void テスト1() { }
    }
  }
  @RunWith(Enclosed.class)
  public class 階層2 {
    public static class 階層2_2 {
      @Test
      public void テスト1() { }
      // パラメータテストも@Testの並びに書く
      @RunWith(Theories.class)
      public static class パラメータテストのクラス {
        @DataPoint
        public static int PARAM_1 = 1;
        @Theory
        public void パラメータテスト(int num) { }
      }
    }
  }
}

階層かとパラメータテストを併用できないと思っていましたが、よく確認してないだけでした。
パラメータテストの書き方はこの辺参考に
JUnitにおけるパラメータ化テスト入門 - Qiita