JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@Aft
2012 ワード
JUnit 4はJava 5の注釈(annotation)を使用し始め、よく使われるいくつかのannotationの紹介:
@BeforeClass:すべてのテストに対して1回のみ実行し、static voidである必要があります.
@Before:初期化方法
@Test:テスト方法、ここで期待異常とタイムアウト時間をテストできます
@After:リソースの解放
@AfterClass:すべてのテストに対して1回のみ実行し、static voidである必要があります.
@Ignore:無視されたテスト方法
1つのユニットテスト例の実行順序は、次のとおりです.
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
各テストメソッドの呼び出し順序は、次のとおりです.
@Before –> @Test –> @After
テスト実行順序コードは次のとおりです.
実行結果:
@beforeClass2@beforeClass1@before2@before11@after1@after2@before2@before12@after1@after2@before2@before14@after1@after2@before2@before15@after1@after2@before2@before16@after1@after2@afterClass1@afterClass2
@BeforeClass:すべてのテストに対して1回のみ実行し、static voidである必要があります.
@Before:初期化方法
@Test:テスト方法、ここで期待異常とタイムアウト時間をテストできます
@After:リソースの解放
@AfterClass:すべてのテストに対して1回のみ実行し、static voidである必要があります.
@Ignore:無視されたテスト方法
1つのユニットテスト例の実行順序は、次のとおりです.
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
各テストメソッドの呼び出し順序は、次のとおりです.
@Before –> @Test –> @After
テスト実行順序コードは次のとおりです.
public class CalculatorTest {
private static Calculator calculator = new Calculator();
@BeforeClass
public static void beforeClass1(){
System.out.println("@beforeClass1");
}
@BeforeClass
public static void beforeClass2(){
System.out.println("@beforeClass2");
}
@Before
public void before1() throws Exception {
System.out.println("@before1");
}
@Before
public void before2() throws Exception {
System.out.println("@before2");
}
@Test
public void testAdd() {
System.out.println(1);
}
@Test
public void testSubstract() {
System.out.println(2);
}
@Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply() {
System.out.println(3);
fail("Not yet implemented");
}
@Test
public void testDivide() {
System.out.println(4);
}
@Test(timeout = 1000)
public void testSquareRoot() {
System.out.println(5);
}
@Test
//@Test(expected = ArithmeticException.class)
public void divideByZero() {
System.out.println(6);
}
@After
public void after1(){
System.out.println("@after1");
}
@After
public void after2(){
System.out.println("@after2");
}
@AfterClass
public static void afterClass1(){
System.out.println("@afterClass1");
}
@AfterClass
public static void afterClass2(){
System.out.println("@afterClass2");
}
}
実行結果:
@beforeClass2@beforeClass1@before2@before11@after1@after2@before2@before12@after1@after2@before2@before14@after1@after2@before2@before15@after1@after2@before2@before16@after1@after2@afterClass1@afterClass2