社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

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")); 
	    }
	}
}

どのような観点でグループ化するか迷いところですが、いくつかヒントはありそうです。

  • 共通のデータで分ける
  • 共通の状態で分ける
  • コンストラクタのテストを分ける など

テスト結果も以下のようにグループ化されて表示されます。
f:id:blueskyarea:20190717233754p:plain