在本節中,我們將提到支援在JUnit4基本註釋,下表列出了這些註釋的概括:
註解 | 描述 |
---|---|
@Test public void method() |
測試注釋指示該公共無效方法它所附著可以作為一個測試用例。 |
@Before public void method() |
Before註釋表示,該方法必須在類中的每個測試之前執行,以便執行測試某些必要的先決條件。 |
@BeforeClass public static void method() |
BeforeClass註釋指出這是附著在靜態方法必須執行一次並在類的所有測試之前。發生這種情況時一般是測試計算共用組態方法(如連線到資料庫)。 |
@After public void method() |
After 注釋指示,該方法在執行每項測試後執行(如執行每一個測試後重置某些變數,刪除臨時變數等) |
@AfterClass public static void method() |
當需要執行所有的測試在JUnit測試用例類後執行,AfterClass註解可以使用以清理建立方法,(從資料庫如斷開連線)。注意:附有此批註(類似於BeforeClass)的方法必須定義為靜態。 |
@Ignore public static void method() |
當想暫時禁用特定的測試執行可以使用忽略注釋。每個被注解為@Ignore的方法將不被執行。 |
讓我們看看一個測試類,在上面提到的一些註解的一個例子。
AnnotationsTest.java
package com.yiibai.junit; import static org.junit.Assert.*; import java.util.*; import org.junit.*; public class AnnotationsTest { private ArrayList testList; @BeforeClass public static void onceExecutedBeforeAll() { System.out.println("@BeforeClass: onceExecutedBeforeAll"); } @Before public void executedBeforeEach() { testList = new ArrayList(); System.out.println("@Before: executedBeforeEach"); } @AfterClass public static void onceExecutedAfterAll() { System.out.println("@AfterClass: onceExecutedAfterAll"); } @After public void executedAfterEach() { testList.clear(); System.out.println("@After: executedAfterEach"); } @Test public void EmptyCollection() { assertTrue(testList.isEmpty()); System.out.println("@Test: EmptyArrayList"); } @Test public void OneItemCollection() { testList.add("oneItem"); assertEquals(1, testList.size()); System.out.println("@Test: OneItemArrayList"); } @Ignore public void executionIgnored() { System.out.println("@Ignore: This execution is ignored"); } }
如果我們執行上面的測試,控制台輸出將是以下幾點:
@BeforeClass: onceExecutedBeforeAll @Before: executedBeforeEach @Test: EmptyArrayList @After: executedAfterEach @Before: executedBeforeEach @Test: OneItemArrayList @After: executedAfterEach @AfterClass: onceExecutedAfterAll