国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何有效保證Java代碼單元測(cè)試覆蓋率

這篇具有很好參考價(jià)值的文章主要介紹了如何有效保證Java代碼單元測(cè)試覆蓋率。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

背景介紹

我們?cè)趯?shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中,不同level的童鞋由于專業(yè)技能的層次不同,導(dǎo)致在參與實(shí)際開(kāi)發(fā)的業(yè)務(wù)代碼中經(jīng)常會(huì)出現(xiàn)各種bug,項(xiàng)目管理中好的pm或許會(huì)給充足的時(shí)間來(lái)讓開(kāi)發(fā)童鞋們定位修復(fù)這些bug,也有各種客觀原因的PM不會(huì)在項(xiàng)目中預(yù)留這些時(shí)間,往往就需要開(kāi)發(fā)自己通過(guò)加班來(lái)修復(fù)趕上項(xiàng)目整體的進(jìn)度
基于以上背景,那我們有沒(méi)有一種更有效的方式來(lái)保證業(yè)務(wù)代碼的質(zhì)量呢?
本人推薦的是通過(guò)嚴(yán)格的一套單元測(cè)試體系來(lái)保證我們的代碼質(zhì)量,當(dāng)然除此之外的手段比如code review、開(kāi)發(fā)規(guī)范等等不在本文介紹。

單元測(cè)試體系搭建

編寫單元測(cè)試代碼

針對(duì)我們的所有業(yè)務(wù)代碼的類進(jìn)行一對(duì)一時(shí)的單元測(cè)試覆蓋,如下圖所示:

  1. 業(yè)務(wù)代碼:
@RestController
@RequestMapping("/hello")
public class HelloWorldController {
    @Autowired
    private IHelloWorldService helloWorldService;

    @GetMapping("/say")
    public Result<String> sayHello(@RequestParam(value = "msg",required = false) String msg){
        Result result = new Result();
        result.setCode(200);
        result.setData(helloWorldService.sayHello(msg));
        result.setMsg("OK");
        return result;
    }
}
  1. 對(duì)應(yīng)的單元測(cè)試代碼如下:

@SpringBootTest
@RunWith(SpringRunner.class)
public class HelloWorldControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private IHelloWorldService helloWorldService;


    @Test
    public void test()throws Exception{

        RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/hello/say").accept(
                MediaType.APPLICATION_JSON);
        MvcResult result= mockMvc.perform(requestBuilder).andReturn();
        Assert.assertEquals(HttpStatus.OK.value(),result.getResponse().getStatus());

    }
}

選用單元測(cè)試框架

本人推薦用Jacoco即 Code Coverage for Java的縮寫或Emma,本人在idea中安裝Jacoco插件按照如下圖所示:
如何有效保證Java代碼單元測(cè)試覆蓋率

執(zhí)行單元測(cè)試

如何有效保證Java代碼單元測(cè)試覆蓋率
修改單元測(cè)試的框架:
如何有效保證Java代碼單元測(cè)試覆蓋率
執(zhí)行單元測(cè)試:
如何有效保證Java代碼單元測(cè)試覆蓋率
按照如上圖所示的操作可以看到單元測(cè)試覆蓋率如下圖:
如何有效保證Java代碼單元測(cè)試覆蓋率

如何有效保證Java代碼單元測(cè)試覆蓋率
按照如上圖所示的兩步操作完畢之后,會(huì)生成如下圖所示的site目錄:
如何有效保證Java代碼單元測(cè)試覆蓋率

打開(kāi)如上圖所示的index.html文件可以查看網(wǎng)頁(yè)版的單元測(cè)試覆蓋率,如下圖所示:
如何有效保證Java代碼單元測(cè)試覆蓋率
查看具體某一個(gè)類的單元測(cè)試覆蓋率
如何有效保證Java代碼單元測(cè)試覆蓋率
如上圖所示:
單元測(cè)試覆蓋率主要分為如下幾類:
1、代碼覆蓋率 (Instructions Cov.)
2、邏輯分支覆蓋率(Branches Cov.)
3、判斷行數(shù)覆蓋率(Cxty Cov.)
4、代碼行數(shù)覆蓋率(Lines Cov.)
5、方法個(gè)數(shù)覆蓋率(Methods Cov.)
6、類覆蓋率(Classes Cov.)

Missed 所在列表示當(dāng)前類型缺失的數(shù)量

總結(jié)

其實(shí)在具體項(xiàng)目實(shí)操過(guò)程中發(fā)現(xiàn)做整項(xiàng)目所有類的單測(cè)工作量是巨大無(wú)比的,毫不夸張的說(shuō)編寫單元測(cè)試的代碼的工作量遠(yuǎn)遠(yuǎn)超出了實(shí)際編寫業(yè)務(wù)代碼的工作量,所以本人介紹的初衷只是告訴諸位技術(shù)層面如何有效保證代碼質(zhì)量,具體落地時(shí)因地制宜吧,根據(jù)實(shí)際項(xiàng)目情況技術(shù)負(fù)責(zé)人和PM綜合評(píng)估而定。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-416742.html

到了這里,關(guān)于如何有效保證Java代碼單元測(cè)試覆蓋率的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 單元測(cè)試必備:Asp.Net Core代碼覆蓋率實(shí)戰(zhàn),打造可靠應(yīng)用 !

    單元測(cè)試必備:Asp.Net Core代碼覆蓋率實(shí)戰(zhàn),打造可靠應(yīng)用 !

    在前幾章我們深度講解了單元測(cè)試和集成測(cè)試的基礎(chǔ)知識(shí),這一章我們來(lái)講解一下 代碼覆蓋率 ,代碼覆蓋率是單元測(cè)試運(yùn)行的 度量值 ,覆蓋率通常以百分比表示,用于衡量代碼被測(cè)試覆蓋的程度,幫助開(kāi)發(fā)人員評(píng)估測(cè)試用例的質(zhì)量和代碼的健壯性。常見(jiàn)的覆蓋率包括語(yǔ)句覆蓋

    2024年04月23日
    瀏覽(23)
  • cmake + gtest安裝使用 C++單元測(cè)試 gcov locv代碼覆蓋率

    cmake + gtest安裝使用 C++單元測(cè)試 gcov locv代碼覆蓋率

    CMakeLists.txt速查簡(jiǎn)單編寫 打開(kāi)–g3 選項(xiàng),去掉-O2以上級(jí)別的代碼優(yōu)化選項(xiàng);否則編譯器會(huì)對(duì)代碼做一些優(yōu)化,例如行合并,從而影響行覆蓋率結(jié)果; 這里我比較懶就沒(méi)有加 加到test目錄下的CMakeLists.txt即可 , 其中代碼編譯完之后會(huì)在test/CMakeFiles/test.dir/ 生成test.cpp.gcno文件, 在運(yùn)

    2024年02月05日
    瀏覽(53)
  • java & jacoco & powerMock 單元測(cè)試覆蓋率為0怎么解決

    我們項(xiàng)目中使用powerMock作為單元測(cè)試的mock工具,統(tǒng)計(jì)項(xiàng)目測(cè)試覆蓋率使用jacoco編譯的結(jié)果上傳到sonar,但是jacoco 和 powerMock在運(yùn)行時(shí)runtime加載代碼的時(shí)候自定義了類加載器,所以就會(huì)有沖突,導(dǎo)致測(cè)試覆蓋率為0。 使用命令 mvn clean verify sonar:sonar上傳jacoco編譯結(jié)果(這里sonar命令

    2023年04月08日
    瀏覽(26)
  • 特性介紹 | MySQL 測(cè)試框架 MTR 系列教程(二):進(jìn)階篇 - 內(nèi)存/線程/代碼覆蓋率/單元/壓力測(cè)試

    作者:盧文雙 資深數(shù)據(jù)庫(kù)內(nèi)核研發(fā) 序言: 以前對(duì) MySQL 測(cè)試框架 MTR 的使用,主要集中于 SQL 正確性驗(yàn)證。近期由于工作需要,深入了解了 MTR 的方方面面,發(fā)現(xiàn) MTR 的能力不僅限于此,還支持單元測(cè)試、壓力測(cè)試、代碼覆蓋率測(cè)試、內(nèi)存錯(cuò)誤檢測(cè)、線程競(jìng)爭(zhēng)與死鎖等功能,因

    2024年02月03日
    瀏覽(25)
  • springboot項(xiàng)目使用Junit5 + mockito + jacoco 實(shí)現(xiàn)單元測(cè)試以及代碼覆蓋率檢查

    在創(chuàng)建springboot項(xiàng)目時(shí)會(huì)默認(rèn)添加spring-boot-starter-test依賴,其中已經(jīng)包含了junit、mockito依賴,根據(jù)springboot版本的不同junit和mockito的版本也會(huì)有所不同 先說(shuō)一下各自功能: junit只說(shuō)一點(diǎn),junt4和junit5的注解不同,使用方式略有差異,其他不贅述了,基本用法都懂。 mockito是mock的

    2023年04月23日
    瀏覽(33)
  • IDFA 單元測(cè)試以及單元測(cè)試覆蓋率步驟

    IDFA 單元測(cè)試以及單元測(cè)試覆蓋率步驟

    1、新建java類 隨意選擇java類文件,新建一個(gè)Java類CountVowel,用來(lái)統(tǒng)計(jì)字符串中元音的個(gè)數(shù),代碼如下: 2、生成測(cè)試類 一)、對(duì)寫好的類新建測(cè)試類,有以下兩種方法: 將鼠標(biāo)光標(biāo)移動(dòng)到類名上,使用 Alt+Enter 組合鍵,如下圖,選擇 Create Test ,從而新建一個(gè)測(cè)試類; 右鍵點(diǎn)

    2024年02月16日
    瀏覽(19)
  • Sonarqube-8.9版本測(cè)試單元測(cè)試覆蓋率

    Sonarqube-8.9版本測(cè)試單元測(cè)試覆蓋率

    junit testNG Spock Jacoco Cobertura SonarQube 不會(huì)運(yùn)行測(cè)試或生成報(bào)告。要在分析中包含覆蓋結(jié)果,需要設(shè)置第三方覆蓋工具來(lái)生成報(bào)告并配置 SonarQube 以導(dǎo)入這些報(bào)告。 生成單元測(cè)試覆蓋率需要按照以下步驟操作: SonarQube 使用導(dǎo)入的覆蓋率報(bào)告中的覆蓋行和可執(zhí)行行(或要覆蓋的行

    2024年02月02日
    瀏覽(23)
  • 13.Springboot整合junit5單元測(cè)試與生成單元測(cè)試覆蓋率

    13.Springboot整合junit5單元測(cè)試與生成單元測(cè)試覆蓋率

    現(xiàn)在基本大公司都要求單元測(cè)試了,保證我們代碼得質(zhì)量,而我司更是要求覆蓋率要達(dá)到60%以上,所以搞一下。 這里有兩個(gè)方法: 1.使用maven自帶得test,idea右側(cè)maven模塊執(zhí)行項(xiàng)目下得test 2.使用cmd命令,在你的項(xiàng)目pom文件所在目錄 ,打開(kāi)cmd,執(zhí)行如下: 結(jié)果如下:打開(kāi)site文

    2024年02月16日
    瀏覽(23)
  • maven sonar 掃描單元測(cè)試覆蓋率為0,但是單元測(cè)試數(shù)不為0

    maven sonar 掃描單元測(cè)試覆蓋率為0,但是單元測(cè)試數(shù)不為0

    最初配置如下: sonar 掃描后的單元測(cè)試覆蓋率為0。但是但與測(cè)試數(shù)量不為0. 而配置的 sonar : 單元測(cè)試數(shù)基于 maven-surefire-plugin 插件 單元測(cè)試覆蓋率基于 jacoco-maven-plugin 插件。 發(fā)現(xiàn) maven 執(zhí)行后沒(méi)有 jacoco.exec 文件。導(dǎo)致 sonar 單元測(cè)試覆蓋率為 0。并且沒(méi)有下面的 jacoco 結(jié)果文

    2024年02月11日
    瀏覽(16)
  • 【Maven】單元測(cè)試、統(tǒng)計(jì)、覆蓋率相關(guān)插件使用介紹

    【Maven】單元測(cè)試、統(tǒng)計(jì)、覆蓋率相關(guān)插件使用介紹

    maven-surefire-plugin 是 maven 執(zhí)行單元測(cè)試的插件,不顯性配置也可以直接使用。 這個(gè)插件的 surefire:test 命令會(huì)默認(rèn)綁定 maven 執(zhí)行的 test 階段。 執(zhí)行結(jié)束后,默認(rèn)在 target/surefire-reports 目錄下會(huì)生成 txt 和 xml 兩種格式的結(jié)果,不利于直觀展示,需要結(jié)合其它插件一起使用。 如果

    2024年02月08日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包