JUnit使用簡介java
1、首先建立一個待測試的項目程序員
待測項目calculate.java以下圖所示: 框架
該項目是一個簡易的計算功能,實現了兩個整數的加減乘除功能。eclipse
2、創建JUnit項目函數
按照如下圖示的步驟建立JUnit Test Case:工具
勾選上紅框裏的setUpBeforeClass()、tearDownAfterClass()、setUp()和tearDown(),會自動生成annotation及相應的方法,如圖爲點擊「finish」以後生成的TestCalculate.jave。單元測試
其中annotation,@BeforeClass、@AfterClass、@Before和@After的使用方法以下表所示,這四個annotation加上@Test是JUnit最經常使用的annotation:測試
@BeforeClass and @AfterClass | @Before and @After |
在一個類中只能夠出現一次 | 在一個類中能夠出現屢次,便可以在多個方法的聲明前加上這兩個Annotaion標籤,執行順序不肯定spa |
方法名不作限制 | 方法名不作限制 |
在類中只運行一次 | 在每一個測試方法以前或者以後都會運行一次 |
@BeforeClass父類中標識了該Annotation的方法將會先於當前類中標識了該Annotation的方法執行。 |
@Before父類中標識了該Annotation的方法將會先於當前類中標識了該Annotation的方法執行。 @After父類中標識了該Annotation的方法將會在當前類中標識了該Annotation的方法以後執行 |
必須聲明爲public static | 必須聲明爲public 而且非static |
全部標識爲@AfterClass的方法都必定會被執行,即便在標識爲@BeforeClass的方法拋出異常的的狀況下也同樣會。 | 全部標識爲@After 的方法都必定會被執行,即便在標識爲 @Before 或者 @Test 的方法拋出異常的的狀況下也同樣會。 |
JUnit中還有不少其餘的annotation,關於這些annotation的說明和使用方法以下表:
JUnit4使用Java5中的註解(annotation),如下是JUnit4經常使用的幾個annotation: @Before:初始化方法 對於每個測試方法都要執行一次(注意與BeforeClass區別,後者是對於全部方法執行一次) @After:釋放資源 對於每個測試方法都要執行一次(注意與AfterClass區別,後者是對於全部方法執行一次) @Test:測試方法,在這裏能夠測試指望異常和超時時間 @Test(expected=ArithmeticException.class)檢查被測方法是否拋出ArithmeticException異常 @Ignore:忽略的測試方法 @BeforeClass:針對全部測試,只執行一次,且必須爲static void @AfterClass:針對全部測試,只執行一次,且必須爲static void 一個JUnit4的單元測試用例執行順序爲: @BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 每個測試方法的調用順序爲: @Before -> @Test -> @After; |
摘自其餘博客。(因爲找不到網址了,之後看到再補) |
3、JUnit的使用
JUnit爲咱們提供了一些輔助函數,他們用來幫助咱們肯定被測試的方法是否按照預期的效果正常工做,一般,把這些輔助函數稱爲斷言。
經常使用的Assert(斷言):一、assertEquals(a, b) Asserts that two primitive values are equal.
測試a是否等於b(a和b是原始類型數值(primitive value)或者必須爲實現比較而具備equal方法)
二、assertFalse(a) Asserts that a condition (a) is false.
測試a是否爲false(假),a是一個Boolean數值。
三、assertTrue(a) Asserts that a condition is true.
測試a是否爲true(真),a是一個Boolean數值
四、assertNotNull(a) Asserts that an object isn't null.
測試a是否非空,a是一個對象或者null。
五、assertNull(a) Asserts that an object is null.
測試a是否爲null,a是一個對象或者null。
六、assertNotSame(a, b) Asserts that two objects do not refer to the same object.
測試a和b是否沒有都引用同一個對象。
七、assertSame(a, b) Asserts that two objects refer to the same object.
測試a和b是否都引用同一個對象。
以下圖是使用斷言而且運行測試的截圖:
如圖,代碼中紅框就是使用了斷言,檢測兩個數相加的結果與7比較(這裏須要注意下,以前待測程序使用了兩個浮點數,然而rassertEquals(double,double)方法已過期,測試出現問題,故將程序改成了兩個整數的加減乘除)。結果圖片左邊的框報告出測試未經過,到此爲止測試結束。
測試程序中能夠有多個@Test,在JUnit4.11後可使用 @FixMethodOrder 註解改變每一個測試的順序。
目前當程序中有多個@before和@after註解尚未弄明白,若有大神瞭解,請指導。
有了JUnit,單元測試和迴歸測試變得好容易,因此常用JUnit對於中大型項目來講,有很大的益處
2015-05-25 22:34:18
---------------------------------------------------
人生並不像火車要經過每一個站似的通過每個生活階段。
人生老是直向前行走,從不留下什麼。