本文主講如何在IntelliJ IDEA上如何配置單元測試Junit4以及如何使用。
步驟:
1.下載jar包
2. 項目軟件配置
3. 使用實例
一、下載jar包:
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啦。
之後在這個庫目下可以看到添加成功。
三、使用實例
因爲有些已經創建了,所以不用在意圖片背景不同
-
自己創建Java類,定義方法。
-
新建test文件夾,並將文件夾改爲測試根目錄。
-
在自己目標方法類內ctrl+shift+T,快捷鍵呼出新建測試方法
-
完善測試方法,運行測試類。如實是預期結果,右下角會顯示各個方法是綠色。
圖中assertEquals只是一種判斷方法,可自行查閱文檔查看其它方法。
四、測試使用相關
- 各種測試中常用的註解
@Test:把該方法標記爲測試方法
@Before:該方法在每個測試方法執行前都執行一次
@After:該方法在每個測試方法執行後都執行一次
@BeforeClass:在所有測試方法執行前執行一次,在測試類還沒有實例化就已經被加載,所以用static修飾
@AfterClass:在所有測試方法執行後執行一次,在測試類還沒有實例化就已經被加載,所以用static修飾
@Ignore:該方法將被忽略不執行 - Junit是單元測試,所以每個測試方法都是一個單獨的實例進行測試,各個方法互不影響。
在測試類中,我定義全局變量volatile int i=0;且在每個測個方法都對 i 進行了+1操作,從結果看出 i 並沒有變成3。 - 編寫測試類的原則:
①測試方法上必須使用@Test進行修飾①測試方法上必須使用@Test進行修飾
②測試方法必須使用public void 進行修飾,不能帶任何的參數
③新建一個源代碼目錄來存放我們的測試代碼,即將測試代碼和項目業務代碼分開
④測試類所在的包名應該和被測試類所在的包名保持一致
⑤測試單元中的每個方法必須可以獨立測試,測試方法間不能有任何的依賴
⑥測試類使用Test作爲類名的後綴(不是必須)
⑦測試方法使用test作爲方法名的前綴(不是必須) - @Test的屬性
①測試異常
在測試方法中,我輸入一個非法參數,在主方法會拋異常,但此時因爲加入(expected = IllegalArgumentException.class),表示就是來判斷是否得到異常的測試,因此通過測試。
②超時測試
在主方法內我sleep了3000ms,測試方法內允許2000ms的超時,所以此處這個方法沒有通過測試用例。
且從異常看出,sleep被中斷了。因此當超出timeout時間後,測試方法中斷了主方法的sleep。