欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IDEA 單元測試覆蓋技巧分享

 更新時間:2021年01月22日 08:40:33   作者:藍(lán)星花  
這篇文章主要介紹了IDEA 單元測試覆蓋技巧分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.前言

通常情況下,項(xiàng)目經(jīng)理or項(xiàng)目總監(jiān)會分階段的問測試負(fù)責(zé)人,本階段的測試覆蓋率是多少?在工作中,當(dāng)被問到“如何提高代碼質(zhì)量”,回答無非如下幾個,增加評審,代碼規(guī)約,單元測試。不知起自何年何月,如今一些機(jī)構(gòu)開始引入“單元測試覆蓋率”的概念,并由此對程序員提出了覆蓋率要達(dá)到70%,90%,以此來評判程序員工作的質(zhì)量,以及產(chǎn)品的質(zhì)量。這里先預(yù)為單元測試下定義以免混淆,即,基于Junit,類與代碼級別的,與運(yùn)行時無關(guān)的白盒測試。

2.我的理解

測試覆蓋率應(yīng)該區(qū)分自動化測試覆蓋率和功能測試用例覆蓋率。

對于自動化測試覆蓋率,應(yīng)是=(自動化測試腳本執(zhí)行過的代碼/總代碼)

對于測試用例覆蓋率,應(yīng)是=(測試用例覆蓋的功能點(diǎn)/產(chǎn)品設(shè)計的所有功能點(diǎn))

3.什么是單元測試

單元測試是開發(fā)者編寫的一小段代碼,用于檢驗(yàn)被測代碼的一個很小的、很明確的功能是否正確,通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(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;
@SpringBootTest
public 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。

擴(kuò)展

隨著公司的發(fā)展,自動化測試腳本的持續(xù)集成逐漸要被做起來,那就面臨一個自檢的問題,我的測試腳本、測試用例是否全覆蓋了開發(fā)的代碼。如何直觀地看到代碼覆蓋率?

本地統(tǒng)計代碼覆蓋率:jacoco,cobertura

遠(yuǎn)程統(tǒng)計代碼覆蓋率:jenkins上下載jacoco插件,并在構(gòu)建后配置

如果把測試工程(T)跟開發(fā)工程(D)分開為兩個獨(dú)立的工程,D部署在獨(dú)立的服務(wù)器上,T工程該如何遠(yuǎn)程獲取D的覆蓋率數(shù)據(jù)呢?

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 多jdk環(huán)境下指定springboot外部配置文件詳解

    多jdk環(huán)境下指定springboot外部配置文件詳解

    這篇文章主要為大家介紹了多jdk環(huán)境下指定springboot外部配置文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • springboot如何獲取yml文件的自定義參數(shù)

    springboot如何獲取yml文件的自定義參數(shù)

    這篇文章主要介紹了springboot如何獲取yml文件的自定義參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 子線程任務(wù)發(fā)生異常時主線程事務(wù)回滾示例過程

    子線程任務(wù)發(fā)生異常時主線程事務(wù)回滾示例過程

    這篇文章主要為大家介紹了子線程任務(wù)發(fā)生了異常時主線程事務(wù)如何回滾的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Java?深入理解創(chuàng)建型設(shè)計模式之原型模式

    Java?深入理解創(chuàng)建型設(shè)計模式之原型模式

    原型(Prototype)模式的定義如下:用一個已經(jīng)創(chuàng)建的實(shí)例作為原型,通過復(fù)制該原型對象來創(chuàng)建一個和原型相同或相似的新對象。在這里,原型實(shí)例指定了要創(chuàng)建的對象的種類。用這種方式創(chuàng)建對象非常高效,根本無須知道對象創(chuàng)建的細(xì)節(jié)
    2022-02-02
  • Java連接MySQL數(shù)據(jù)庫命令行程序過程

    Java連接MySQL數(shù)據(jù)庫命令行程序過程

    SQL編程包括兩種形式,一種是過程化編程,主要通過數(shù)據(jù)庫交互式工具,通過存儲過程、觸發(fā)器、函數(shù)等形式的編程;另一種是嵌入式SQL編程,將SQL語句嵌入到高級開發(fā)語言,完成數(shù)據(jù)的各種操作
    2021-10-10
  • Spring Boot 表單驗(yàn)證篇

    Spring Boot 表單驗(yàn)證篇

    在表單提交的時候,我們需要進(jìn)行驗(yàn)證。下面通過本篇文章給大家介紹Spring Boot 表單驗(yàn)證篇,需要的朋友可以參考下
    2017-08-08
  • 一篇文章帶你了解Java容器,面板及四大布局管理器應(yīng)用

    一篇文章帶你了解Java容器,面板及四大布局管理器應(yīng)用

    這篇文章主要介紹了JAVA布局管理器與面板組合代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-08-08
  • Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup

    Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup

    下面小編就為大家分享一篇Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 通過FeignClient調(diào)用微服務(wù)提供的分頁對象IPage報錯的解決

    通過FeignClient調(diào)用微服務(wù)提供的分頁對象IPage報錯的解決

    這篇文章主要介紹了通過FeignClient調(diào)用微服務(wù)提供的分頁對象IPage報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java生成唯一ID的三種方法總結(jié)

    Java生成唯一ID的三種方法總結(jié)

    單機(jī)環(huán)境下,可以使用AtomicLong來生成唯一ID;而在需要非純數(shù)字形式的場景中,可以通過UUID結(jié)合哈希函數(shù)如MD5或SHA-1轉(zhuǎn)換成數(shù)字,但需注意哈希碰撞的低概率風(fēng)險;對于分布式系統(tǒng),模擬Snowflake算法是一種復(fù)雜但有效的方法,每種方法都有其適用場景和潛在問題
    2024-09-09

最新評論