詳解Java單元測試之Junit框架使用教程
單元測試
單元測試就是針對最小的功能單元編寫測試代碼,Java程序最小的功能單元是方法,因此,單元測試就是針對Java方法的測試,進而檢查方法的正確性
目前測試方法是怎么進行的,存在什么問題?
1、只有一個main方法,如果一個方法的測試失敗了,其他方法測試會受到影響
2、無法得到測試的結(jié)果報告,需要程序員自己去觀察測試是否成功
3、無法實現(xiàn)自動化測試
Junit單元測試框架
1、Junit是使用Java語言實現(xiàn)的單元測試框架,它是開源的,Java開發(fā)者都應(yīng)當(dāng)學(xué)習(xí)并使用Junit編寫單元測試
2、此外,幾乎所有的IDE工具都集成了Junit,這樣我們就可以直接在IDE中編寫并運行Junit測試,Junit目前最新版本是5
Junit優(yōu)點
1、Junit可以靈活的選擇執(zhí)行哪些測試方法,可以一鍵執(zhí)行全部測試方法
2、Junit可以生成全部方法的測試報告
3、Junit可以生成測試報告,如果測試良好則是綠色,如果測試失敗則是紅色
4、單元測試中的某個方法測試失敗了,不會影響其他測試方法的測試
Junit單元測試是做什么的?
測試類中的方法的正確性的
單元測試快速入門
需求:使用單元測試進行業(yè)務(wù)方法預(yù)期結(jié)果、正確性測試的快速入門
分析:
1、將Junit的jar包導(dǎo)入到項目中
IDEA通常整合好了Junit框架,一般不需要導(dǎo)入
如果IDEA沒有整合好,需要自己手工導(dǎo)入兩個Junit的jar包到模塊
2、編寫測試方法:該測試方法必須是公共的無參數(shù)無返回值的非靜態(tài)方法
3、在測試方法上使用@Test注解:標(biāo)注該方法是一個測試方法
4、在測試方法中完成被測試方法的預(yù)期正確性測試
5、選中測試方法,選擇Junit運行,如果測試良好則是綠色,如果測試失敗,則是紅色
業(yè)務(wù)類
//業(yè)務(wù)方法 public class 單元測試_Junit框架 { public String loginName(String loginName,String passWord){ if("YAn".equals(loginName)&&"123456".equals(passWord)){ return "登錄成功"; }else{ return "登錄失敗,密碼或者用戶名錯誤"; } } public void selectName(){ //這里我們故意寫一個bug,方便測試 System.out.println(10/0); System.out.println("查詢成功!"); } }
測試方法
import org.junit.Assert; import org.junit.Test; //測試方法 public class 單元測試_Junit框架text { /* 測試方法注意點: 1、必須是公開的、無參、無返回值的方法 2、測試方法必須使用@Test注解標(biāo)記 */ @Test public void test(){ 單元測試_Junit框架 t=new 單元測試_Junit框架(); String ts=t.loginName("YAn","123456"); //進行預(yù)期結(jié)果的正確性測試:斷言 Assert.assertEquals("您的業(yè)務(wù)功能可能出現(xiàn)了問題","登錄成功",ts); } @Test public void selectName(){ 單元測試_Junit框架 ts=new 單元測試_Junit框架(); ts.selectName(); } }
兩個測試方法運行后結(jié)果:
如果您的項目被人動了,和你的預(yù)期結(jié)果不一樣,則是這樣的:
單元測試常用注解(博主這里用的是版本4):
業(yè)務(wù)類修改一點點,讓測試方法都沒有bug
//業(yè)務(wù)方法 public class 單元測試_Junit框架 { public String loginName(String loginName,String passWord){ if("YAn".equals(loginName)&&"123456".equals(passWord)){ return "登錄成功"; }else{ return "登錄失敗,密碼或者用戶名錯誤"; } } public void selectName(){ System.out.println(10/2); System.out.println("查詢成功!"); } }
測試方法
import org.junit.*; //測試方法 public class 單元測試_Junit框架text { //修飾實例方法的 @Before public void Before(){ System.out.println("Before方法運行"); } @After public void After(){ System.out.println("After方法運行"); } //修飾靜態(tài)方法的 @BeforeClass public static void BeforeClass(){ System.out.println("BeforeClass方法運行"); } @AfterClass public static void AfterClass(){ System.out.println("AfterClass方法運行"); } /* 測試方法注意點: 1、必須是公開的、無參、無返回值的方法 2、測試方法必須使用@Test注解標(biāo)記 */ @Test public void test(){ 單元測試_Junit框架 t=new 單元測試_Junit框架(); String ts=t.loginName("YAn","123456"); //進行預(yù)期結(jié)果的正確性測試:斷言 Assert.assertEquals("您的業(yè)務(wù)功能可能出現(xiàn)了問題","登錄成功",ts); } @Test public void selectName(){ 單元測試_Junit框架 ts=new 單元測試_Junit框架(); ts.selectName(); } }
運行結(jié)果:
可以看出最先運行的是BeforeClass測試方法,最后結(jié)束的是AfterClass測試方法。
先執(zhí)行Before方法,然后運行里面的測試內(nèi)容,再運行After方法。
開始執(zhí)行的方法:初始化資源
執(zhí)行完之后的方法:釋放資源
以上就是詳解Java單元測試之Junit框架使用教程的詳細內(nèi)容,更多關(guān)于Java Junit框架的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
spring boot validation參數(shù)校驗實例分析
這篇文章主要介紹了spring boot validation參數(shù)校驗,結(jié)合實例形式分析了spring boot validation進行數(shù)據(jù)有效性驗證的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11Springboot登錄驗證的統(tǒng)一攔截處理的實現(xiàn)
如果不進行統(tǒng)一的攔截處理,每次用戶請求你都要去進行用戶的信息驗證,所以本文主要介紹了Springboot登錄驗證的統(tǒng)一攔截處理的實現(xiàn),感興趣的可以了解一下,感興趣的可以了解一下2023-09-09基于spring-mvc.xml和application-context.xml的配置與深入理解
這篇文章主要介紹了spring-mvc.xml和application-context.xml的配置與深入解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Java編程利用socket多線程訪問服務(wù)器文件代碼示例
這篇文章主要介紹了Java編程利用socket多線程訪問服務(wù)器文件代碼示例,具有一定參考價值,需要的朋友可以了解下。2017-10-10Springboot快速集成sse服務(wù)端推流(最新整理)
SSE?Server-Sent?Events是一種允許服務(wù)器向客戶端推送實時數(shù)據(jù)的技術(shù),它建立在?HTTP?和簡單文本格式之上,提供了一種輕量級的服務(wù)器推送方式,通常也被稱為“事件流”(Event?Stream),這篇文章主要介紹了Springboot快速集成sse服務(wù)端推流(最新整理),需要的朋友可以參考下2024-02-02Springboot @WebFilter無法注入其他Bean的示例問題
這篇文章主要介紹了Springboot @WebFilter無法注入其他Bean的示例問題,本文通過示例代碼給大家分享解決方法,需要的朋友可以參考下2021-09-09java大數(shù)乘法的簡單實現(xiàn) 浮點數(shù)乘法運算
大數(shù)乘法可以進行任意大小和精度的整數(shù)和浮點數(shù)的乘法運算, 精確度很高, 可以用作經(jīng)融等領(lǐng)域的計算,這個是我看了一些資料, 然后自己整理實現(xiàn)的,簡單測試了一下2014-01-01centos7如何通過systemctl啟動springboot服務(wù)代替java -jar方式啟動
這篇文章主要介紹了centos7如何通過systemctl啟動springboot服務(wù)代替java -jar方式啟動,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01