IDEA 單元測試覆蓋技巧分享
通常情況下,項目經(jīng)理or項目總監(jiān)會分階段的問測試負責(zé)人,本階段的測試覆蓋率是多少?在工作中,當(dāng)被問到“如何提高代碼質(zhì)量”,回答無非如下幾個,增加評審,代碼規(guī)約,單元測試。不知起自何年何月,如今一些機構(gòu)開始引入“單元測試覆蓋率”的概念,并由此對程序員提出了覆蓋率要達到70%,90%,以此來評判程序員工作的質(zhì)量,以及產(chǎn)品的質(zhì)量。這里先預(yù)為單元測試下定義以免混淆,即,基于Junit,類與代碼級別的,與運行時無關(guān)的白盒測試。
2.我的理解測試覆蓋率應(yīng)該區(qū)分自動化測試覆蓋率和功能測試用例覆蓋率。
對于自動化測試覆蓋率,應(yīng)是=(自動化測試腳本執(zhí)行過的代碼/總代碼)
對于測試用例覆蓋率,應(yīng)是=(測試用例覆蓋的功能點/產(chǎn)品設(shè)計的所有功能點)
3.什么是單元測試單元測試是開發(fā)者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確,通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(shù)的行為。
3.1好處
1,單元測試不但會使你的工作完成得更輕松。而且會令你的設(shè)計會變得更好,甚至大大減少你花在調(diào)試上面的時間
2,提高代碼質(zhì)量
3,減少bug,快速定位bug
4,放心地修改、重構(gòu)
5,顯得專業(yè)(玩笑話)
3.2注意
1,不能只測試一條正確執(zhí)行路徑,要考慮到所有可能的情況
2,要確保所有測試都能夠通過,避免間接損害
3,如果一個函數(shù)復(fù)雜到無法單測,那就說明模塊的抽象有問題
(1)語句覆蓋法
(2)分支覆蓋法
(3)條件覆蓋法
(4)組合條件覆蓋法
4.IDEA 單元測試覆蓋技巧package com.example.demoo.junit;/** * Created by lanxinghua on 2018/7/26. */public class Myclass { public String test1(){ return 'test1!'; } public String test2(){ return 'test2'; }}
package com.example.demoo;import com.example.demoo.junit.Myclass;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;@SpringBootTestpublic class JunitTest { private Myclass myclass; @Before public void setUp() { myclass = new Myclass(); } @Test public void testHello(){ myclass.test1(); }}
1)啟動單元測試覆蓋模式(Run “*” with Coverage)
2)查看代碼覆蓋率結(jié)果
工具欄按鈕:
3)生成代碼覆蓋率報告
在里面 生成覆蓋報告對話框打開,指定存儲生成的報告的目標(biāo)目錄,并且可選擇選中該復(fù)選框在瀏覽器中打開生成的HTML。
隨著公司的發(fā)展,自動化測試腳本的持續(xù)集成逐漸要被做起來,那就面臨一個自檢的問題,我的測試腳本、測試用例是否全覆蓋了開發(fā)的代碼。如何直觀地看到代碼覆蓋率?
本地統(tǒng)計代碼覆蓋率:jacoco,cobertura
遠程統(tǒng)計代碼覆蓋率:jenkins上下載jacoco插件,并在構(gòu)建后配置
如果把測試工程(T)跟開發(fā)工程(D)分開為兩個獨立的工程,D部署在獨立的服務(wù)器上,T工程該如何遠程獲取D的覆蓋率數(shù)據(jù)呢?
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項目的過程2. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析3. SharePoint Server 2019新特性介紹4. ASP中常用的22個FSO文件操作函數(shù)整理5. 三個不常見的 HTML5 實用新特性簡介6. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp7. .Net core 的熱插拔機制的深入探索及卸載問題求救指南8. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁9. 讀大數(shù)據(jù)量的XML文件的讀取問題10. 解決ASP中http狀態(tài)跳轉(zhuǎn)返回錯誤頁的問題
