Java單元測試之JUnit篇
阿新 • • 發佈:2018-12-24
JUnit4通過註解的方式來識別測試方法。目前主要註解有:
- @BeforeClass 全域性只會執行一次,而且是第一個執行,且必須為static void
- @Before 在測試方法執行之前執行,即初始化方法
- @Test 測試方法
- @Ignore 忽略此方法
- @After 在測試方法執行之後允許,即釋放資源
- @AfterClass 全域性只會執行一次,而且是最後一個執行,且必須為static void
一個JUnit4的單元測試用例執行順序為:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass
每一個測試方法的呼叫順序為:
@Before -> @Test -> @After
舉個栗子
package com.imooc.imoocshiro; import org.junit.*; import org.junit.Test; import static org.junit.Assert.assertEquals; public class Demo { @BeforeClass public static void beforeClass() { System.out.println("@BeforeClass"); } @Before public void before() { System.out.println("@Before"); } @Test public void test(){ System.out.println("@Test"); assertEquals(5 + 5, 10); // 判斷是 5+5 是否等於 10 } @After public void after() { System.out.println("@After"); } @AfterClass public static void afterClass() { System.out.println("@AfterClass"); } }
執行結果如下:
@BeforeClass
@Before
@Test
@After
@AfterClass
針對 @Test 分為以下幾種情況:
- @Test(timeout = 1000),限時測試
- @Test(expected = ArithmeticException.class),測試異常
例子如下:
class Demo { @Test(timeout = 50) public void testTimeout() { System.out.println("@Test(timeout = 50)"); } @Test(expected = ArithmeticException.class) public void testExcepted(){ System.out.println("@Test(expected = Exception.class)"); throw new ArithmeticException(); } }