@After:釋放資源 對於每一個測試方法都要執行一次(注意與AfterClass區別,後者是對於所有方法執行一次)
@Test:測試方法,在這裏可以測試期望異常和超時時間
@Test(expected=ArithmeticException.class)檢查被測方法是否拋出ArithmeticException異常
@Ignore:忽略的測試方法
@BeforeClass:針對所有測試,只執行一次,且必須爲static void
@AfterClass:針對所有測試,只執行一次,且必須爲static void
一個JUnit4的單元測試用例執行順序爲:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
每一個測試方法的調用順序爲:
@Before -> @Test -> @After;
public class JUnit4Test {
@Before
public void before() {
System.out.println("@Before");
}
@Test
/**
*Mark your test cases with @Test annotations.
*You don’t need to prefix your test cases with “test”.
*tested class does not need to extend from “TestCase” class.
*/
public void test() {
System.out.println("@Test");
assertEquals(5 + 5, 10);
}
@Ignore
@Test
public void testIgnore() {
System.out.println("@Ignore");
}
@Test(timeout = 50)
public void testTimeout() {
System.out.println("@Test(timeout = 50)");
assertEquals(5 + 5, 10);
}
@Test(expected = ArithmeticException.class)
public void testExpected() {
System.out.println("@Test(expected = Exception.class)");
throw new ArithmeticException();
}
@After
public void after() {
System.out.println("@After");
}
@BeforeClass
public static void beforeClass() {
System.out.println("@BeforeClass");
};
@AfterClass
public static void afterClass() {
System.out.println("@AfterClass");
};
};
輸出結果:
@BeforeClass
@Before
@Test(timeout = 50)
@After
@Before
@Test(expected = Exception.class)
@After
@Before
@Test
@After
@AfterClass