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〜