JUnit 4 開始使用 Java 5 中的註解(annotation),經常使用的幾個 annotation 介紹:java
@BeforeClass:針對全部測試,只執行一次,且必須爲static voidide
@Before:初始化方法單元測試
@Test:測試方法,在這裏能夠測試指望異常和超時時間測試
@After:釋放資源spa
@AfterClass:針對全部測試,只執行一次,且必須爲static voidcode
@Ignore:忽略的測試方法
orm
一個單元測試用例執行順序爲:
ip
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass資源
每個測試方法的調用順序爲:
it
@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