JUnit Enclosed によるテストケースのグループ化
既に存在しているテストクラスに新しいテストケースを追加するとき、どの位置に入れようか迷うときがあります。
出来れば、後で見たときに分かりやすい位置に入れたいですが、そもそも整理されていなければそれも難しいです。そこで Enclosedを使うことで、テストケースのグループ化が可能です。
@RunWith(Enclosed.class) public class RunWithTest { public static class TestForNumber { @Test public void additionTest() { int actual = 1 + 2; assertThat(actual, is(3)); } @Test public void subtractionTest() { int actual = 1 - 2; assertThat(actual, is(-1)); } } public static class TestForCharacter { @Test public void additionTest() { String actual = "a" + "b"; assertThat(actual, is("ab")); } @Test public void replaceTest() { String actual = "a".replace("a", "b"); assertThat(actual, is("b")); } } }
どのような観点でグループ化するか迷いところですが、いくつかヒントはありそうです。
- 共通のデータで分ける
- 共通の状態で分ける
- コンストラクタのテストを分ける など
テスト結果も以下のようにグループ化されて表示されます。