一聊起測試用例,很多人第一反應就是,我們公司的測試會寫測試用例的,我自己也會使用postman或者swagger之類的進行代碼自測。那我們研發(fā)到底要不要寫單元測試用例呢?參考阿里巴巴開發(fā)手冊,第8條規(guī)則(單元測試的基本目標:語句覆蓋率達到 70%;核心模塊的語句覆蓋率和分支覆蓋率都要達到 100%),大廠的要求就是必須嘍。我個人感覺,寫單元測試用例也是很有必要的,好處很多,例如:
保證代碼質量?。?!無論初級,中級,高級攻城獅開發(fā)工程的代碼,且不說效率如何,功能是必要要保證是正確的;交付測試以后,bug銳減,聯(lián)調飛快。代碼邏輯“文檔化”?。?!新人接手維護模塊代碼時,通過單元測試用例,以debug的方式就能熟悉業(yè)務代碼。比起,看代碼,研究表結構梳理代碼結構,效率提升飛快。易維護?。?!新人接手維護代碼模塊時,提交自己的代碼時,遠行之前的單元測試達到回歸測試,保證了新改動不會影響老業(yè)務。快速定位bug!??!在聯(lián)調期間,測試提出bug后,基于uat環(huán)境,編寫出錯的api測試用例。根據(jù),測試提供的參數(shù)和token就可以以debug的方式跟蹤問題的所在,如果是在微服務架構中,運行單元測試用例,不會注冊本地服務到uat環(huán)境,還能過正常請求注冊中心的服務。Java開發(fā)springboot項目都是基于junit測試框架,比較MockitoJUnitRunner與SpringRunner與使用,MockitoJUnitRunner基于mockito,模擬業(yè)務條件,驗證代碼邏輯。SpringRunner是MockitoJUnitRunner子類,集成了Spring容器,可以在測試的根據(jù)配置加載Spring bean對象。在Springboot開發(fā)中,結合@SpringBootTest注解,加載項目配置,進行單元測試。
基于MockitoJUnitRunner的方法測試。以springboot項目為例,一般,對單個的方法都是進行mock測試,在測試方法使用MockitoJUnitRunner,根據(jù)不同條件覆蓋測試。使用@InjectMocks注解,可以讓模擬的方法正常發(fā)起請求;@Mock注解可以模擬期望的條件。基于SpringRunner的Spring容器測試。在api開發(fā)過程中,會對單個api的調用鏈路進行驗證,對第三方服務進行mock模擬,本服務的業(yè)務邏輯進行測試。一般,會使用@SpringBootTest加載測試環(huán)境的Spring容器配置,使用MockMvc以http請求的方式進行測試。鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。