Java用の単体テストフレームワーク。
JUnitのようなテスティングフレームワークを活用することで、次のメリットがある。
また、単体テストコードがあれば、仕様変更時のデグレードを早い段階で発見することができる。
J2SE5.0のアノテーションを取り入れ、テスト記述方法のルールがシンプルになった。
import junit.framework.TestCase; public class SampleTest extends TestCase { }
import static org.junit.Assert.*; public class SampleTest { }
public void testFoo() { }
@Test public void foo() { }
public void testException() { String string = null; try { fail(); } catch (NullPointerException e) { assertTrue(true); } }
@Test(expected=NullPointerException.class) public void exception() { String string = null; string。toUpperCase(); }
public void setUp() { // 前処理 }
@Before public void before() { // 前処理 }
public void tearDown() { // 後処理 }
@After public void after() { // 後処理 }
// 1500ms以下であること。 @Test(timeout=1500) public void time() throws InterruptedException { Thread。sleep(1000); }
@Ignore("実行しない理由を書く") @Test public void foo() { String string = "無視する"; assertEquals("無視する", string); }
assertEquals(Object[], Object[]);
@BeforeClass public void beforClass() { // 前処理 }
@AfterClass public void afterClass() { // 後処理 }
public class SampleTest2 { static { System.out.println("クラス初期化"); } public SampleTest2() { System.out.println("コンストラクタ"); } @BeforeClass public static void setUpBeforeClass() throws Exception { System.out.println("@BeforeClass"); } @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("@AfterClass"); } @Before public void setUp() throws Exception { System.out.println("@Before"); } @After public void tearDown() throws Exception { System.out.println("@After"); } @Test public void test() { System.out.println("テストメソッド"); } }
クラス初期化 @BeforeClass コンストラクタ @Before テストメソッド @After @AfterClass
アノテーション | 意味 |
---|---|
@Test | テスト対象のメソッドに記述する。 exception:例外テストの際、例外クラス名を記述する。 timeout:パフォーマンス検証テストの際、実行時間をミリ秒で記述する。 |
@Before | テストメソッドの前処理のメソッドに記述する。 |
@After | テストメソッドの後処理のメソッドに記述する。 |
@BeforeClass | テストクラスの前処理のメソッドに記述する。 |
@AfterClass | テストクラスの後処理のメソッドに記述する。 |
@Ignore | テスト対象外にするメソッドに記述する(テストを実行しない場合に記述する)。 |
Eclipse3.2〜