Java單元測試Junit萌新篇

本文主講如何在IntelliJ IDEA上如何配置單元測試Junit4以及如何使用。

步驟:
1.下載jar包
2. 項目軟件配置
3. 使用實例

一、下載jar包:

  1. https://github.com/junit-team/junit4/wiki/Download-and-Install
    在這裏插入圖片描述

  2. 可以根據需要選擇對應版本

在這裏插入圖片描述

在這裏插入圖片描述
3.選擇jar包進行下載
其他文件可根據需要自行選擇下載。
另外,建議大家在選擇junit文件版本時,選擇4.10版本或者低版本。因爲選擇較高版本4.11以上版本不在包含hamcrest。
如果選擇較高版本會造成沒有hamcrest,造成需要手動導入。junit.jar + hamcrest-core.jar + hamcrest-library.jar或者是:junit-dep.ajr+hancrest-all.jar。但在使用中會有些方法同時出現在了org.hamcrest.Mathchers和org.hamcrest.core中,則在用到時候引入的時候需要注意。

二、項目軟件配置

在本地ItelliJ IDEA上創建一個項目。在導航欄選擇File->Project Structure->Modules選擇’+’
在這裏插入圖片描述
在這裏插入圖片描述
找到自己下載的Junit和hamcrest的jar文件,都添加並應用到項目就OK啦。
在這裏插入圖片描述
之後在這個庫目下可以看到添加成功。
在這裏插入圖片描述

三、使用實例

因爲有些已經創建了,所以不用在意圖片背景不同

  1. 自己創建Java類,定義方法。
    在這裏插入圖片描述

  2. 新建test文件夾,並將文件夾改爲測試根目錄。
    在這裏插入圖片描述

  3. 在自己目標方法類內ctrl+shift+T,快捷鍵呼出新建測試方法
    在這裏插入圖片描述

  4. 完善測試方法,運行測試類。如實是預期結果,右下角會顯示各個方法是綠色。
    圖中assertEquals只是一種判斷方法,可自行查閱文檔查看其它方法。
    在這裏插入圖片描述

四、測試使用相關

  1. 各種測試中常用的註解
    @Test:把該方法標記爲測試方法
    @Before:該方法在每個測試方法執行前都執行一次
    @After:該方法在每個測試方法執行後都執行一次
    @BeforeClass:在所有測試方法執行前執行一次,在測試類還沒有實例化就已經被加載,所以用static修飾
    @AfterClass:在所有測試方法執行後執行一次,在測試類還沒有實例化就已經被加載,所以用static修飾
    @Ignore:該方法將被忽略不執行
  2. Junit是單元測試,所以每個測試方法都是一個單獨的實例進行測試,各個方法互不影響。
    在測試類中,我定義全局變量volatile int i=0;且在每個測個方法都對 i 進行了+1操作,從結果看出 i 並沒有變成3。在這裏插入圖片描述
  3. 編寫測試類的原則: 
    ①測試方法上必須使用@Test進行修飾①測試方法上必須使用@Test進行修飾
    ②測試方法必須使用public void 進行修飾,不能帶任何的參數
    ③新建一個源代碼目錄來存放我們的測試代碼,即將測試代碼和項目業務代碼分開
    ④測試類所在的包名應該和被測試類所在的包名保持一致
    ⑤測試單元中的每個方法必須可以獨立測試,測試方法間不能有任何的依賴
    ⑥測試類使用Test作爲類名的後綴(不是必須)
    ⑦測試方法使用test作爲方法名的前綴(不是必須)
  4. @Test的屬性
    ①測試異常在這裏插入圖片描述
    在測試方法中,我輸入一個非法參數,在主方法會拋異常,但此時因爲加入(expected = IllegalArgumentException.class),表示就是來判斷是否得到異常的測試,因此通過測試。
    ②超時測試在這裏插入圖片描述
    在主方法內我sleep了3000ms,測試方法內允許2000ms的超時,所以此處這個方法沒有通過測試用例。
    且從異常看出,sleep被中斷了。因此當超出timeout時間後,測試方法中斷了主方法的sleep。

最後,關於Java其他測試知識需要大家去自己拓展了,本文就到這裏了。

如有錯誤之處還望指正;

如果疑問,歡迎提問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章