JUnit4 ことはじめ.
Think Different. – A dream does not escape. but I always escapes.
ずっと食わず嫌いだった JUnit4 を使ってみたので, コードを晒しておきます...
/* * $Id$ */ package net.nanasess.examples; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import static org.junit.Assert.*; /** * HelloWorld のテスト. * * @author Kentaro Ohkouchi * @version $Revision$ $Date$ */ public class HelloWorldTest { private static String expected; private String actual; private static int counter; /** * すべてのテスト前に実行するメソッド. * * static にして {@link @beforeClass} アノテーションをつける. */ @BeforeClass public static void beforeClass() { System.out.println("HelloWorld テストを始めます."); counter = 0; System.out.println("カウンターを初期化しました."); } /** * すべてのテストを終了した後に実行するメソッド. * * static にして {@link @AfterClass} アノテーションをつける. */ @AfterClass public static void afterClass() { System.out.println(counter + " 個のテストを実行しました."); System.out.println("HelloWorld テストを終了します."); } /** * 各テストをする前に実行するメソッド. * * {@link @Before} アノテーションをつける. */ @Before public void before(){ expected = "HelloWorld"; System.out.println("expected を初期化しました."); } /** * 各テストの後に実行するメソッド. * * {@link @After} アノテーションをつける. */ @After public void after() { counter++; System.out.println(String.valueOf(counter) + " 番目のテストを実行しました."); } /** * HelloWorld のテスト. */ @Test public void helloWorld() { actual = "HelloWorld"; assertEquals(expected, actual); } /** * ちゃんと ClassNotFoundException になるかどうかのテスト. * * @throws Exception エラーが発生した場合. */ @Test(expected = ClassNotFoundException.class) public void classForNameFailure() throws Exception { Class.forName("org.postgresql.Driver"); } /** * スタブなので, スキップするテスト. * * {@link @Ignore} アノテーションをつけると, そのメソッドはテストしない. */ @Ignore("スタブなのでテストしません...") @Test public void testStub() { assertEquals("test", "stub"); } /** * 配列を比較するテスト. * * {@link org.junit.Assert#assertArrayEquals(String[], String[])} を使ってます. * 配列や, List のテストも楽になったものです(しみじみ) */ @Test public void arrays() { String[] expecteds = { "1", "2", "3" }; List<String> actuals = new ArrayList<String>(); actuals.add("1"); actuals.add("2"); actuals.add("3"); assertArrayEquals(expecteds, actuals.toArray(new String[actuals.size()])); } }個人的には, 配列や例外のテストが解りやすく楽になったのが良い感じ.
JUnit4 の関連ライブラリも充実してきたので, そろそろ乗り替え時かな...ついでに, Eclipse 3.4M6a を Celeron 600MHz, メモリ 384MB という非力なノートPCで使ってみましたが, 思ったよりサクサクで良い感じでした☆