日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
五分鐘技術(shù)趣談|單元測(cè)試的重要性及方案推薦

Part 01 什么是單元測(cè)試

單元測(cè)試是一種軟件測(cè)試方法,用于測(cè)試軟件系統(tǒng)的最小可測(cè)試單元,例如函數(shù)、方法或類的行為。單元測(cè)試通常由開(kāi)發(fā)人員編寫(xiě),并在編寫(xiě)代碼時(shí)就開(kāi)始執(zhí)行。這樣可以保證實(shí)時(shí)檢測(cè)代碼中的錯(cuò)誤、缺陷和潛在的問(wèn)題,確保代碼滿足預(yù)期的行為和輸出。

創(chuàng)新互聯(lián)公司于2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元屯留做網(wǎng)站,已為上家服務(wù),為屯留各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

單元測(cè)試可以分為如下幾個(gè)步驟,然后在開(kāi)發(fā)中就可以不斷地編寫(xiě)、執(zhí)行、分析測(cè)試用例,并修復(fù)問(wèn)題。

  • 確定測(cè)試目標(biāo):在編寫(xiě)單元測(cè)試之前,開(kāi)發(fā)人員需要明確測(cè)試目標(biāo)和預(yù)期結(jié)果。這有助于確保測(cè)試的準(zhǔn)確性和完整性。
  • 編寫(xiě)測(cè)試用例:測(cè)試用例是單元測(cè)試的核心。測(cè)試用例應(yīng)該覆蓋代碼的各種情況和條件,并檢測(cè)其行為和輸出。
  • 執(zhí)行測(cè)試用例:測(cè)試用例可以手動(dòng)執(zhí)行,也可以通過(guò)自動(dòng)化測(cè)試框架執(zhí)行。自動(dòng)化測(cè)試框架可以幫助開(kāi)發(fā)人員更快速和有效地執(zhí)行測(cè)試用例,并自動(dòng)報(bào)告測(cè)試結(jié)果。
  • 分析測(cè)試結(jié)果:分析測(cè)試結(jié)果可以幫助開(kāi)發(fā)人員更好地理解代碼的行為和輸出,發(fā)現(xiàn)問(wèn)題和改進(jìn)代碼。
  • 修復(fù)問(wèn)題:在發(fā)現(xiàn)問(wèn)題之后,開(kāi)發(fā)人員需要及時(shí)修復(fù)問(wèn)題,確保代碼的質(zhì)量和穩(wěn)定性。修復(fù)問(wèn)題后,需要重新運(yùn)行測(cè)試用例,確保問(wèn)題已經(jīng)解決并且沒(méi)有引入新的問(wèn)題。

Part 02 單元測(cè)試的作用

  • 確保代碼質(zhì)量:?jiǎn)卧獪y(cè)試可以幫助開(kāi)發(fā)人員檢測(cè)代碼中的錯(cuò)誤、缺陷和潛在的問(wèn)題。通過(guò)及時(shí)發(fā)現(xiàn)和修復(fù)這些問(wèn)題,可以保證代碼的質(zhì)量和穩(wěn)定性。
  • 提高代碼可維護(hù)性:?jiǎn)卧獪y(cè)試可以幫助開(kāi)發(fā)人員更好地理解代碼,了解其行為和預(yù)期輸出,這使得代碼更易于維護(hù)和修改。
  • 提高開(kāi)發(fā)效率:通過(guò)早期發(fā)現(xiàn)和解決問(wèn)題,可以減少后期的調(diào)試時(shí)間和資源成本,提高開(kāi)發(fā)效率。
  • 促進(jìn)團(tuán)隊(duì)合作:?jiǎn)卧獪y(cè)試可以作為開(kāi)發(fā)團(tuán)隊(duì)的交流和協(xié)作工具。團(tuán)隊(duì)成員可以分享代碼和測(cè)試結(jié)果,并共同解決問(wèn)題。
  • 改進(jìn)設(shè)計(jì)和架構(gòu):?jiǎn)卧獪y(cè)試可以促進(jìn)更好的設(shè)計(jì)和架構(gòu)實(shí)踐。通過(guò)編寫(xiě)可測(cè)試的代碼和測(cè)試用例,可以幫助開(kāi)發(fā)人員更好地理解系統(tǒng)的組成部分,并促進(jìn)設(shè)計(jì)和架構(gòu)的優(yōu)化。

Part 03 Java項(xiàng)目中單元測(cè)試方案推薦

- Junit5

JUnit是Java領(lǐng)域內(nèi)最為流行的單元測(cè)試框架,Junit測(cè)試又稱白盒測(cè)試,旨在驗(yàn)證被測(cè)試的軟件如何(How)完成功能和完成什么樣(What)的功能。Junit的最新版本Junit 5集合了 Junit Platform、Junit Jupiter、Junit Vintage等。其中,Junit Platform是在JVM上啟動(dòng)測(cè)試框架的基礎(chǔ);Junit Jupiter提供了新的編程模型,包含了一個(gè)測(cè)試引擎,在Junit Platform上運(yùn)行;Junit Vintage 提供了兼容JUnit4.x,Junit3.x的測(cè)試引擎,幫助老項(xiàng)目依賴包的過(guò)度升級(jí)。Springboot2.2.0+中默認(rèn)集成:


    org.openjdk.jmh
    jmh-core
    1.23


    org.openjdk.jmh
    jmh-generator-annprocess
    1.23

常用注解及說(shuō)明如下:

@Test :表示方法是測(cè)試方法(即框架操作對(duì)象),與JUnit4的@Test不同,JUnit5的@Test非常單一不能聲明任何屬性,拓展的測(cè)試都由Jupiter提供

@DisplayName :為測(cè)試類或者測(cè)試方法設(shè)置展示的名稱

@BeforeAll :表示在所有單元測(cè)試方法之前執(zhí)行

@AfterAll :表示在所有單元測(cè)試方法之后執(zhí)行

@BeforeEach :表示在每個(gè)單元測(cè)試方法之前執(zhí)行

@AfterEach :表示在每個(gè)單元測(cè)試方法之后執(zhí)行

@Timeout :表示測(cè)試方法運(yùn)行超過(guò)指定時(shí)間將會(huì)拋出TimeoutException異常

@Disabled :表示測(cè)試類或測(cè)試方法不執(zhí)行,類似于JUnit4中的@Ignore

@RepeatedTest :表示方法需要重復(fù)執(zhí)行的次數(shù)

@ExtendWith :為測(cè)試類或測(cè)試方法提供@Autowired的IOC注入

- JMH

JMH(Java Microbenchmark Harness)是java領(lǐng)域用于代碼微基準(zhǔn)測(cè)試的工具套件,主要是基于方法層面的基準(zhǔn)測(cè)試,精度可以達(dá)到納秒級(jí),它是由Java虛擬機(jī)團(tuán)隊(duì)開(kāi)發(fā)的。當(dāng)你定位到熱點(diǎn)方法,希望進(jìn)一步優(yōu)化方法性能的時(shí)候,就可以使用 JMH 對(duì)優(yōu)化的結(jié)果進(jìn)行量化的分析

springboot集成方式導(dǎo)入依賴包如下(最新版本1.36):


    org.openjdk.jmh
    jmh-core
    1.23


    org.openjdk.jmh
    jmh-generator-annprocess
    1.23

JMH的應(yīng)用場(chǎng)景如下:

(1)想準(zhǔn)確地知道某個(gè)方法需要執(zhí)行多長(zhǎng)時(shí)間及執(zhí)行時(shí)間和輸入之間的相關(guān)性;

(2)對(duì)比接口不同實(shí)現(xiàn)在給定條件下的吞吐量;

(3)查看多少百分比的請(qǐng)求在多長(zhǎng)時(shí)間內(nèi)完成。

上述兩個(gè)方案前者是確保代碼運(yùn)行的正確性,后者旨在測(cè)試代碼運(yùn)行的性能,在項(xiàng)目實(shí)戰(zhàn)中可以做到強(qiáng)強(qiáng)聯(lián)合,確保代碼質(zhì)量和穩(wěn)定性,幫助完善或改進(jìn)設(shè)計(jì)和架構(gòu),編寫(xiě)高質(zhì)量的單元測(cè)試需要遵循最佳實(shí)踐。

Part 04 總結(jié)

單元測(cè)試的目的是為了驗(yàn)證軟件開(kāi)發(fā)的功能、性能、完整性。當(dāng)軟件發(fā)生變化時(shí),單元測(cè)試可以幫助開(kāi)發(fā)人員確定哪些部分受到影響,以及如何更改代碼。還可以幫助開(kāi)發(fā)人員了解他們的代碼,從單元測(cè)試中獲得反饋,從而更好繼續(xù)開(kāi)發(fā)軟件。文中提到的基于JUnit5和JMH兩種互補(bǔ)方案,可以從代碼功能和性能兩個(gè)角度保證軟件交付成果。

參考文獻(xiàn)

[1] 蔡高亮,2008, 軟件單元測(cè)試[J],http://www.its.cesi.cn/qkContent/articleDetail/1043,2023/3/13.


當(dāng)前題目:五分鐘技術(shù)趣談|單元測(cè)試的重要性及方案推薦
文章鏈接:http://m.5511xx.com/article/dpjidcs.html