Eclipse 使用 JUnit 進(jìn)行單元測(cè)試
1. 前言
通過前面章節(jié)的介紹,我們已經(jīng)知道如何對(duì)我們的 java 代碼進(jìn)行 Debug 了。
現(xiàn)在讓我們來介紹另外一個(gè)和調(diào)試相關(guān)的操作,就是使用 JUnit 單元測(cè)試框架進(jìn)行單元測(cè)試。
對(duì)我們的程序進(jìn)行 Debug 是為了找出程序出錯(cuò)的地方,而使用 JUnit 進(jìn)行單元測(cè)試除了驗(yàn)證我們的代碼是否正確外,還有一個(gè)重要作用就是看代碼的編寫是否符合我們的業(yè)務(wù)邏輯需求。
我們將使用 JUnit 5 來介紹 JUnit 在 Eclipse 中的使用。本文不會(huì)對(duì) JUnit 進(jìn)行一個(gè)詳細(xì)的使用介紹,但為了第一次接觸 JUnit 的同學(xué),讓我們先來看看 JUnit 的一個(gè)簡(jiǎn)介。
2. JUnit 簡(jiǎn)介
JUnit 起源于 1997 年,作為一個(gè)單元測(cè)試框架,至今已經(jīng) 20 多年了,可以說有著較長(zhǎng)的發(fā)展歷史。
JUnit 最初的版本是由兩位編程大師 Kent Beck 和 Erich Gamma 在一次飛行旅程中完成的,推出后一直備受 Java 開發(fā)者的青睞,所以其功能也只一直在演進(jìn)。
JUnit 目前已經(jīng)發(fā)展到了 5.x 版本,主要是為了當(dāng)前主流的 Java 版本 JDK 8 以及更高的版本提供更好的支持 (如支持 Lambda 等) 和提供更豐富的測(cè)試功能 (如重復(fù)測(cè)試,參數(shù)化測(cè)試等)。
JUnit 5 這個(gè)版本是 JUnit 單元測(cè)試框架的一次重大升級(jí),其架構(gòu)也和以前的 JUnit 版本不同。
目前,JUnit 5 由三個(gè)不同的子項(xiàng)目構(gòu)成:JUnit Platform + JUnit Jupiter + JUnit Vintage。
其中 JUnit Jupiter 包含了 JUnit 5 中新的編程模型和擴(kuò)展模型,主要就是用于編寫測(cè)試代碼和擴(kuò)展代碼。
所以,待會(huì)我們?cè)?Eclipse 中新建 JUnit 測(cè)試時(shí)會(huì)選擇 New JUnit Jupiter test,它代表的就是 JUnit 5。
通常,如果新的項(xiàng)目中需要使用 JUnit 來進(jìn)行單元測(cè)試,我都會(huì)建議使用 JUnit 5,因?yàn)檫@是以后的一種趨勢(shì)。
下面,讓我們看看如何在 Eclipse 中進(jìn)行編寫和運(yùn)行 JUnit 測(cè)試。
2. 創(chuàng)建測(cè)試文件夾
一般來說,我們會(huì)把測(cè)試相關(guān)的代碼放到一個(gè)獨(dú)立的文件夾中,而且通常名稱就是 test。
我們可以直接在我們的 Java 項(xiàng)目中新建一個(gè)文件夾,如下圖所示:
接著輸入文件夾的名稱為 test,如下圖所示:
然后建立和項(xiàng)目中同樣的包層級(jí),包的創(chuàng)建我們已經(jīng)介紹過了,這里不再贅述,最終如下圖所示:
3. 創(chuàng)建測(cè)試文件
現(xiàn)在,我們需要?jiǎng)?chuàng)建測(cè)試文件。
通過右鍵點(diǎn)擊我們的包名,彈出的菜單中并沒有測(cè)試文件,所以,我們選擇 Other…,如下圖所示:
在彈出的新建窗口中,我們直接在搜索框中輸入 test,然后選擇 Junit Test Case,如下圖所示:
點(diǎn)擊 Nest 后,我們需要填寫測(cè)試文件的名稱,其實(shí)測(cè)試文件就是一個(gè)測(cè)試類,所以名稱的命名應(yīng)該和類名的命名規(guī)則一致,如下圖所示:
另外,在一步我們還需要選擇使用的 Junit 版本,我們這里選擇了目前最新的 Junit 5,也就是 New JUnit Jupiter test。
點(diǎn)擊 Finish 后,由于我們的項(xiàng)目還沒添加 JUnit 5框架的 JAR 包,所以,Eclipse 會(huì)詢問我們是否要現(xiàn)在添加,我們選擇是即可,如下圖所示:
點(diǎn)擊 OK 后,我們將可以看到 Eclipse 中新生成的測(cè)試文件 FirstTest.java,以及 Eclipse 幫我們導(dǎo)入的 JUnit 5 JAR 包,同時(shí)自動(dòng)打開 FirstTest 類中也幫我們添加了一些默認(rèn)代碼,如下圖所示:
現(xiàn)在,我們以及準(zhǔn)備好運(yùn)行測(cè)試前的所有工作了。
4. 運(yùn)行測(cè)試
運(yùn)行我們的測(cè)試代碼,其實(shí)和我們運(yùn)行的 Java 程序類似,我們可以選擇在編輯視圖中鼠標(biāo)右鍵,然后選擇 Run As -> JUnit Test,如下圖所示:
運(yùn)行后,我們重點(diǎn)需要關(guān)注右邊 Eclipse 自動(dòng)幫我們打開的 JUnit 視圖,如下圖所示:
5. 閱讀 JUnit 視圖
我們可以觀察到JUnit 視圖中默認(rèn)分為上下兩個(gè)選項(xiàng)卡:一個(gè)選項(xiàng)卡顯示測(cè)試問題列表,另一個(gè)測(cè)試跟蹤選項(xiàng)卡將所有的測(cè)試問題顯示為樹。
我們可以通過雙擊測(cè)試跟蹤中的相應(yīng)行來導(dǎo)航到對(duì)于的源代碼,如下圖所示:
5. 小結(jié)
本文中對(duì)如何在 Eclipse 中使用 JUnit 進(jìn)行了介紹,從使用上并不難,大家可以自行嘗試。