原 Junit4 x學習筆記

2021-05-28 08:35:57 字數 1954 閱讀 6359

1、測試類無需繼承任何類,只需在被測試的方法前加上註解@test(全名為org.junit.test)

2、測試方法必須是public void *(),即方法名可以隨便命名但最好以test開頭

3、junit4.x也有junit3.8的setup、teardow的功能,它對應的註解分別是 @before 、@after,其初始化和銷毀資源的方法名可以隨便命名,但必須是public void且無參

4、junit3.8的testcase不存在所有測試用例執行之前或執行之後的操作方法。而在junit4.x中出現了這樣的註解,分寫是@beforeclass 和 @afterclass,它在整個測試類裡只執行一次,而不像@before 、@after那樣在每個測試方法執行前或執行後執行。

5、被@beforeclass 和 @afterclass註解的方法的命名必須是public static void *()

6、junit4.x異常處理:@test(expected=異常型別.class);將異常throws測試方法,讓junit處理,而非junit3.8中的在測試方法內處理,相比3.8要簡潔得多。

7、@test(timeout=毫秒數),它用於簡單的效能測試,表示執行該測試方法必須在此時間內完成,否則該方法測試失敗。(不推薦使用,最好使用效能測試框架,因為junit只是單元測試框架)

8、同時被註解test、ignore的測試方法,將被junit4.x忽略掉

9、測試執行器使用方法:(目的就是為了提供測試效率,可以一同執行多個測試類)

a、建立乙個空類作為測試套件的入口

b、使用org.junit.runner.runwith 和 org.junit.runners.suite.suiteclasses修飾這個類

c、將org.junit.runners.suite作為引數傳遞給runwith, 以提示junit為此類使用套件執行

器執行d、將需要放入此測試套件的測試類組成陣列作為suiteclasses的引數,該引數同樣可以是測試套件類,即套件包括套件

e、保證這個空類使用public修飾,而且存在公開的不帶任何引數的建構函式

10、為每個包建立乙個測試套件,這個測試套件包括該包的所有測試類,同樣為另外的包也建立乙個測試套件,最後建立乙個總的測試套件,該套件包括每個包的測試的套件。

11、引數化測試要點:

a、測試類必須被parameterized測試執行器註解修飾

b、準備資料。資料的準備需要在乙個方法中進行,該方法要滿足一定要求:

1)該方法必須被parameters註解修飾

2)該方法必須為public static

3)該方法必須返回collection型別

4)該方法的名字不作要求

5)該方法沒有引數

c、 方法體內準備的資料必須是乙個object二維陣列,並運用arrays.aslist轉換成collections

d、宣告建構函式。該建構函式的引數必須和前面靜態方法的二維陣列一致,通過帶參構造把數

據一組一組地傳給該類的成員變數,以供測試方法使用。這樣每個物件都能得到一組陣列。

12、引數化測試適合測試大量資料(相同的輸入及輸出條件)但只適合某乙個測試類的某乙個方法

13、如何測試私有方法:得到類的class物件;用class物件的getdeclaredmethod得到方法得到對應的method物件;呼叫method物件的setaccessible(true),設定可以訪問該私有方法;呼叫method物件的invoke方法執行呼叫。

14、不要為了測試而修改源**(如把私有方法改為共有方法),測試出 bug才去修改源**

15、interger.type==int.class interger.class!= int.class

16、測試套件不要有迴圈包含關係否則你就會一直測試下去,o(∩_∩)o哈哈~

17、junit將測試失敗的情況分為兩種:failure和error。failure是由斷言引起; error有**異常引起,可能是測試**本身產生也有可能是被測試的**引起的

Junit4 X 套件測試

junit套件測試功能比較簡單,目的是為了把多個測試類集中執行。下面看一下例項 1 分別定義兩個測試類,這裡只演示功能,所以測試類中只有乙個列印語句,表示該測試方法已經執行。import org.junit.test created by whucke on 2016 8 9.public clas...

JUnit4 x與JUnit3 x的乙個重要區別

在junit3.x中對測試必須繼承 testcase,並且每個方法名必須以test開頭.比如 testmethod1 而在junit4.x中不必繼承testcase,採用了註解的方式.只要在測試的方法上加上註解 test,即可.在junit4.x中如果繼承了testcase,而註解就不起作用了.並且...

JUnit學習筆記 4 化

入力値 期待値 化 対象 複數 引數 持 組 合 異 結果 返 場合 検證 多 必要 例 場合 public class janken public enum result public result judge hand h1,hand h2 殘 省略 import static org.juni...