文章目錄
- 1.定義
- 2.引入
- 1)使用 Maven 工具
- 2)使用 Gradle 工具
- 3)使用 Jar 包
- 2.樣例
- 0)前提
- 1)測試類
- 2)測試方法
- 3)測試斷言
- 4)實施
- 總結
1.定義
JUnit 是一個流行的 Java 單元測試框架,用于編寫和執行測試。它提供了一組注解
和斷言
,使得單元測試的編寫變得簡單且直觀。
程序開發過程中,不變的永遠是變化!
因此,單元測試極為重要!通過使用我們所編寫的 JUnit 測試用例來驗證代碼的正確性,并且還可以確保代碼在之后的修改或重構后仍然能夠正常工作。
2.引入
在 Java 項目中引入 JUnit 主要有以下幾種常用的方式
1)使用 Maven 工具
在 Maven 項目的 pom.xml
文件中添加 JUnit 依賴
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version> <!-- 自己選擇需要的版本 --><scope>test</scope></dependency>
</dependencies>
2)使用 Gradle 工具
在 Gradle 項目的 build.gradle
文件中添加 JUnit 依賴
testImplementation 'junit:junit:4.13.2' // 自己選擇需要的版本
3)使用 Jar 包
需要手動下載 JUnit Jar 包(可以從 JUnit 官方網站下載)并添加到項目的類路徑下
JUnit 官網下載地址:
- JUnit4:https://junit.org/junit4/
- JUnit5:https://junit.org/junit5/
2.樣例
編寫 測試用例 的基本流程 大概是:創建一個 測試類 =》編寫N組 測試方法 =》編寫N組 斷言
接下來就讓我們逐一認識一下吧!
0)前提
想要測試嘛!肯定要有需要測試的代碼呀 (此處選擇使用了 Maven 導入 JUnit)
本 Demo
類中存在了兩個方法,分別是用于加法運算的 add
以及 用于減法運算的 sub
class Demo {public int add(int a, int b) {return a + b;}public int sub(int a, int b) {return a - b;}
}
1)測試類
在 JUnit 中,測試用例通常以一個包含測試方法的測試類為單位
測試類是一個普通的 Java 類,其中包含了一個或多個使用 @Test
注解標記的測試方法
2)測試方法
測試方法用 @Test
注解進行標記,這告訴 JUnit 這是一個測試方法。測試方法包含用于驗證代碼行為的斷言
3)測試斷言
在 JUnit 中提供了一組斷言方法,用于驗證預期結果是否符合實際結果。例如,assertEquals(expected, actual)
用于比較預期值和實際值是否相等
4)實施
點擊代碼左側的 綠色運行按鈕
,然后點擊 Run xxxx
即可。也可以在代碼區內點擊 鼠標右鍵
然后 Run xxxx
說明,這種點擊就是運行當前類的全部測試方法,也可以單獨運行指定的測試方法
示例代碼:
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;class MyFirstJUnitJupiterTests {private final Demo demo = new Demo();@Testvoid add() {assertEquals(2, demo.add(1, 1));}@Testvoid sub() {assertEquals(4, demo.sub(5, 1));}
}
這里使用的 assertEquals(expected, actual) 是驗證預期值和實際值是否相等
運行結果:
1)正常結果
可以看到 兩個方法都是 綠色?,說明其正確。
2)異常結果
修改一下 sub
方法的期待結果,將其結果故意修改為錯誤值 3
@Test
void sub() {assertEquals(3, demo.sub(5, 1));
}
可以看到 第一個方法 add 是綠色?,而第二個方法 sub 則是 黃色 X 說明其錯誤
總結
這樣我們就使用 JUnit
這個流行的 Java 單元測試框架編寫了第一個單元測試用例啦!JUnit
提供的方法還有很多,此處只是簡單的使用了 @Test
和 assertEquals
,它還擁非常多的功能待我們去研究及運用。