景觀設(shè)計方案網(wǎng)站網(wǎng)絡(luò)營銷專業(yè)是學什么的
文章目錄
- 為什么要做單元測試?
- 單元測試的幾個核心要點是:
- 單元測試目標
- 單元測試框架
- JUnit
- TestNG
- 單元測試工具:
為什么要做單元測試?
測試代碼:通過編寫和運行單元測試,開發(fā)者能夠快速驗證代碼的各個部分是否按照預(yù)期工作,有利于保證系統(tǒng)功能的正確可用,這是單元測試的核心作用。
改進代碼:編寫單元測試的過程中,開發(fā)者能夠再次審視業(yè)務(wù)流程和功能的實現(xiàn),更容易發(fā)現(xiàn)一些代碼上的問題。比如將復(fù)雜的模塊進一步拆解為可測試的單元。
利于重構(gòu):如果已經(jīng)編寫了一套可自動執(zhí)行的單元測試代碼,那么每次修改代碼或重構(gòu)后,只需要再自動執(zhí)行一遍單元測試,就知道修改是否正確了,能夠大幅提高效率和項目穩(wěn)定性。
文檔沉淀:編寫詳細的單元測試本身也可以作為一種文檔,說明代碼的預(yù)期行為。
單元測試的幾個核心要點是:
最小化測試范圍:單元測試通常只測試代碼的一個非常小的部分,以確保測試的簡單和準確。
自動化:單元測試應(yīng)該是自動化的,開發(fā)人員可以隨時運行它們來驗證代碼的正確性,特別是在修改代碼后。而不是每次都需要人工去檢查。
快速執(zhí)行:每個單元測試的執(zhí)行時間不能過長,應(yīng)該盡量做到輕量、有利于頻繁執(zhí)行。
獨立性:每個單元測試應(yīng)該獨立于其他測試,不依賴于外部系統(tǒng)或狀態(tài),以確保測試的可靠性和可重復(fù)性。
單元測試目標
新模塊中核心代碼單元測試覆蓋率80%??
新模塊中整體單元測試覆蓋率60%??
單元測試框架
JUnit
JUnit是一個為Java編程語言設(shè)計的開源單元測試框架,由 Kent Beck 和 Erich Gamma建立,它是單元測試框架家族中的一個,這些框架被統(tǒng)稱為xUnit,JUnit是xUnit 家族中最為成功的一個。JUnit 有它自己的 Junit 擴展生態(tài)圈,多數(shù) Java 的開發(fā)環(huán)境都已經(jīng)集成了 JUnit 作為單元測試的工具。JUnit 的最新版本是JUnit 5,它不再是一個單一的JAR 包,而是由JUnit platform(平臺)、JUnit Jupiter 和JUnit Vintage 這3 部分組成。
官網(wǎng)地址:JUnit 5
<!-- junit mvn 配置 待補充 -->
TestNG
TestNG 是另一個為Java編程語言設(shè)計的開源單元測試框架,是一個受JUnit和NUnit啟發(fā)而來的測試框架,但它引入了一些新功能,使其更強大、更容易使用,例如:
- 核心特性是多線程測試執(zhí)行,測試代碼是否是多線程安全的;
- 提供注釋支持;
- 支持數(shù)據(jù)驅(qū)動測試(使用@DataProvider);
- 支持參數(shù)化測試;
- 強大的執(zhí)行模型(不再有TestSuite);
- 支持各種工具和插件(Eclipse, IDEA, Maven等…);
- 嵌入BeanShell以獲得更多的靈活性;
- 用于運行時和日志記錄的默認JDK函數(shù)(沒有依賴關(guān)系)。
官網(wǎng)地址:https://testng.org/
<dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>7.8.0</version>
</dependency>
單元測試工具:
單測生成&單測覆蓋率統(tǒng)計工具:
- Idea的TestMe插件
- Squaretest
參考:
軟件測試/測試開發(fā) | TestNG 與 Junit 對比,測試框架如何選擇?
TestNG和Junit的區(qū)別
2021年軟件測試工具總結(jié)——單元測試工具
【好物推薦】一款幫我快速達成單元測試的覆蓋率指標的IDEA插件 —— TestMe
idea單元測試覆蓋率提升插件