Stories

Detail Return Return

Maven、測試、Junit依賴 - Stories Detail

Maven的作用
管理依賴:通過pom.xml管理項目依賴的資源(jar包)。(不再需要每次都手動導入jar包)
項目構建(標準化跨平台的項目構建方式):complie,test,package,install(編譯,測試,打包,發佈)等項目構建流程
統一項目結構:提供標準、統一的項目結構(主程序,測試程序)

倉庫:用於存儲資源,管理各種jar包。
本地倉庫:自己計算機上的一個目錄。(在安裝maven的時候在setting.html文件中需要自己指定該文件夾目錄作為本地倉庫,存放之後配置依賴)
中央倉庫:由Maven團隊維護的全球唯一的。 倉庫地址:https://repo1.maven.org/maven2/
遠程倉庫(私服):一般由公司團隊搭建的私有倉庫。(在安裝maven的時候在setting.html文件中需要自己説明遠程倉庫,現在用的是阿里的遠程倉庫)
查找依賴的順序是:本地——》遠程——》中央

Maven安裝:https://heuqqdmbyk.feishu.cn/wiki/KTOKw4PvzipYeIkl3N5cSSxYnPb

IDEA集成Maven:
1、創建Maven項目
2、Maven座標:座標是資源(jar)的唯一標識,通過該座標可以唯一定位資源位置。使用座標來定義項目或引入項目中需要的依賴。
groupId:定義當前Maven項目隸屬組織名稱(通常是域名反寫,例如:com.itheima)
artifactId:定義當前Maven項目名稱(通常是模塊名稱,例如 order-service、goods-service)
version:定義當前項目版本號
SNAPSHOT: 功能不穩定、尚處於開發中的版本,即快照版本
RELEASE: 功能趨於穩定、當前更新停止,可以用於發行的版本
3、導入Maven項目:將整個Maven項目的文件複製idea, 選擇pom.xml,右鍵Add Maven Projects

依賴管理
1、依賴:指當前項目運行所需要的jar包,一個項目中可以引入多個依賴。
2、搜索依賴:https://mvnrepository.com/
3、配置依賴:
在 pom.xml 中編寫 <dependencies> 標籤
在 <dependencies> 標籤中 使用 <dependency> 引入座標
定義座標的 groupId,artifactId,version
點擊刷新按鈕,引入最新加入的座標
4、排除依賴:指主動斷開依賴的資源,(因為是在依賴內部排除,所以被排除的資源無需指定版本。),使用<exclusions>...</exclusions>進行排除。
5、配置失敗:
配置失敗通常是因為網絡問題,檢查網絡後,應該在本地倉庫找到配置失敗的latexxx文件,刪除,重新下載
如果配置失敗的文件很多,可以在maven的安裝根目錄下放一個del.bat的文件,配置失敗後,雙擊該文件,則可以自動刪除本地倉庫中配置失敗的latexxx文件,然後再重新刷新下載即可
注意:重新加載依賴,依賴下載了之後,maven面板可能還會報紅,此時可以關閉IDEA,重新打開IDEA加載此項目即可。

依賴生命週期
Maven中有3套相互獨立的生命週期:
1、clean:清理工作。
2、default:核心工作,如:編譯、測試、打包、安裝、部署等。
clean:移除上一次構建生成的文件
compile:編譯項目源代碼
test:使用合適的單元測試框架運行測試(junit)
package:將編譯後的文件打包,如:jar、war等
install:安裝項目到本地倉庫
右側的maven工具欄,選中右邊LifeCycle中對應的生命週期,雙擊執行。
在同一套生命週期中,當運行後面的階段時,前面的階段都會運行。
3、site:生成報告、發佈站點等。

測試
測試:是一種用來促進鑑定軟件的正確性、完整性、安全性和質量的過程。
階段劃分:
1、單元測試(一般是方法測試)
(1)介紹:對軟件的基本組成單位進行測試,最小測試單位。
(2)目的:檢驗軟件基本組成單位的正確性。
(3)測試人員:開發人員
2、集成測試
(1)介紹:將已分別通過測試的單元,按設計要求組合成系統或子系統,再進行的測試。
(2)目的:檢查單元之間的協作是否正確。
(3)測試人員:開發人員
3、系統測試
(1)介紹:對已經集成好的軟件系統進行徹底的測試。
(2)目的:驗證軟件系統的正確性、性能是否滿足指定的要求。
(3)測試人員:測試人員
4、驗收測試
(1)介紹:交付測試,是針對用户需求、業務流程進行的正式的測試。
(2)目的:驗證軟件系統是否滿足驗收標準。
(3)測試人員:客户/需求方
測試方法:
1、白盒測試:清楚內部結構,代碼邏輯,用於驗證代碼、邏輯正確性
2、黑盒測試:不清楚內部結構,代碼邏輯,用於驗證軟件功能實現
3、灰盒測試:結合白盒測試和黑盒測試,既關注代碼邏輯也關注外部表現

Junit依賴:
1、在pom.xml中,引入JUnit的依賴。
2、在test/java目錄下,創建測試類,並編寫對應的測試方法,並在方法上聲明@Test註解。(JUnit單元測試類名命名規範為:XxxxxTest或testXxxxx。JUnit單元測試的方法,必須聲明為 public void)
3、運行單元測試 (測試通過:綠色;測試失敗:紅色)。

如何測試,確保代碼正確
單元測試不報錯不代表代碼沒有問題:
1、應該考慮到所有情況,測試覆蓋率應該>=99% (這一步可以交給AI來做)
2、使用斷言判斷測試結果是否符合預期效果

斷言Assertions(來自Junit依賴):
Assertions.assertEquals檢查兩個值是否相等,不相等就報錯。
Assertions.assertNotEquals檢查兩個值是否不相等,相等就報錯。
Assertions.assertNull檢查對象是否為 null,不為 null,就報錯。
Assertions.assertNotNull檢查對象是否不為 null,為 null,就報錯。
Assertions.assertTrue檢查條件是否為 true,不為 true,就報錯。
Assertions.assertFalse檢查條件是否為 false,不為 false,就報錯。
Assertions.assertThrows檢查程序運行拋出的異常,是否符合預期。

Junit其他註解
@Test 測試類中的方法用它修飾才能成為測試方法,才能啓動執行 單元測試
@ParameterizedTest 參數化測試的註解(可以讓單個測試運行多次,每次運行時僅參數不同),用了該註解,就不需要@Test註解了
@ValueSource 參數化測試的參數來源,賦予測試方法參數 與參數化測試註解配合使用
@DisplayName 指定測試類、測試方法顯示的名稱(默認為類名、方法名)
@BeforeEach 用來修飾一個實例方法,該方法會在每一個測試方法執行之前執行一次。 初始化資源(準備工作)
@AfterEach 用來修飾一個實例方法,該方法會在每一個測試方法執行之後執行一次。 釋放資源(清理工作)
@BeforeAll 用來修飾一個靜態方法,該方法會在所有測試方法之前只執行一次。 初始化資源(準備工作)
@AfterAll 用來修飾一個靜態方法,該方法會在所有測試方法之後只執行一次。 釋放資源(清理工作)

依賴範圍
在pom.xml文件中通過 <scope>…</scope> 設置
scope值 主程序 測試程序 打包(運行) 範例
compile(默認) Y Y Y log4j
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驅動

 

user avatar xuxueli Avatar u_16769727 Avatar u_11365552 Avatar jiangyi Avatar wuliaodechaye Avatar tuhooo Avatar dengjijie Avatar daimajiangxin Avatar dreamlu Avatar snower Avatar mecode Avatar enaium Avatar
Favorites 29 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.