這裏是以junit4爲演示,引入和註解,不用再自己繼承測試類了,非常方便
一、Junit常用的註解
註解 | 解釋 |
---|---|
@Before | 和setUp()方法功能一樣,在每個測試方法之前執行 |
@After | 和tearDown方法功能一樣,在每個測試方法之後執行 |
@BeforeClass | 在所有方法執行之前執行(注意是在一個測試類的範圍) |
@AfterClass | 在所有的方法執行之後執行(注意是在一個測試類的範圍) |
@Test | 一個正常的測試方法的入口,分別這個方法是否是測試方法 |
@Test(timeout = xxx) | 設置當前測試方法是否能在設置的時間內執行完,否則返回錯誤 |
@Test(expected = Exception.class) | 是否有一場拋出,類型爲Exception.class |
@Ignore | 註釋掉一個測試方法或者一個類,不會被執行 |
下面解釋一下@Before、@After、@BeforeClass、@AfterClass的區別(特別注意的是這是在一個測試類裏的,不是所有測試類裏的)
上面這張圖就是執行順序。但是不要以爲@Before和@After在一個類裏就可以有多個,其實是這個類裏的@Before和@After在每個@Test執行前後都執行一次。而@BeforeClass和@AfterClass在在這個類被執行時才執行一次,當然如果你只執行此類中的一個方法,那@BeforeClass和@AfterClass也會執行一次相當於 @BeforeClass->@Before->@Test->@After->@AfterClass
所以在@BeforeClass裏面執行的是在所有測試方法執行之前需要的準備工作
@Before裏是每個方法執行前需要準備的工作,
@After和@AfterClass與之對應。
對於Test裏的就是個性化的單元測試了,如果你涉及到身份的不同,可以寫在@Test裏,如果對於身份的獲取可以單獨寫一個私有的方法,讓@Test調用或者整個測試類繼承基類,基類就是身份的獲取
二、Assert/fail有哪些方法
方法 | 解釋 |
---|---|
assertEquals(boolean expected, boolean actual) | 檢查兩個變量或者等式是否平衡 |
void assertTrue(boolean expected, boolean actual) | 檢查條件爲真 |
void assertFalse(boolean condition) | 檢查條件爲假 |
void assertNotNull(Object object) | 檢查對象不爲空 |
void assertNull(Object object) | 檢查對象爲空 |
void assertSame(boolean condition) | 檢查兩個相關對象是否指向同一個對象 |
void assertNotSame(boolean condition) | 檢查兩個相關對象是否不指向同一個對象 |
void assertArrayEquals(expectedArray, resultArray) | 檢查兩個數組是否相等 |
void fail() | 測試失敗 |
上面所有的方法都可以加一個String Message的參數,這個參數的含義是錯誤的信息,自己定義的,這樣便於我們在控制檯觀察錯誤信息的要點