連接 JUnit 框架
為了測試 Java 代碼,我們有一個很棒的框架,稱為JUnit。它運行良好,不斷更新,非常受歡迎,當然 Intellij IDEA 與它緊密集成。
現在每個人都在使用這個框架的第五個版本——JUnit 5,儘管在很多項目中你仍然可以找到它的第四個版本。它們並沒有太大的不同,但無論如何我們都會看一下最新的。我想當你開始積極編寫測試時,你會贊同我的選擇。
那麼,如何將JUnit添加到項目中呢?學習 Maven 後,這將很容易:只需將此代碼添加到您的 pom.xml 中:
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.1</version> <scope>test</scope> </dependency>
順便說一句,如果你想讓 Maven 在構建階段(測試階段)運行你的測試,那麼你需要再添加一個片段到 pom.xml:
<plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.19.1</version> <dependencies> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-surefire-provider</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin>
@Test註解
假設您有一個要測試的課程。做這個的最好方式是什麼?讓我們從一些例子開始,因為很難測試一個抽像類:)
假設我們有一個可以執行 4 種基本運算的計算器類:加法、減法、乘法和除法。讓我們寫一下:
class Calculator {
public int add(int a, int b) {
return a+b;
}
public int sub(int a, int b) {
return a-b;
}
public int mul (int a, int b) {
return a*b;
}
public int div(int a, int b) {
return a/b;
}
}
我們想測試這個類的方法。你永遠不知道,將來他們會改變一些東西,一切都會停止工作。我們如何為它編寫測試?
我們需要創建另一個類。為此,它們通常採用相同的名稱並添加 Test 後綴。對於每種方法,您必須至少添加一種測試方法。例子:
class CalculatorTest {
@Test
public void add() {
}
@Test
public void sub() {
}
@Test
public void mul() {
}
@Test
public void div() {
}
}
過去曾要求方法名稱以單詞test開頭,但這不再是必需的。
JUnit 測試示例
讓我們寫一些例子,我們將在其中測試我們的CalculatorTest類的方法:
class CalculatorTest {
@Test
public void add() {
Calculator calc = new Calculator();
int result = calc.add(2, 3);
assertEquals(5, result);
}
@Test
public void sub() {
Calculator calc = new Calculator();
int result = calc.sub(10, 10);
assertEquals(0, result);
}
@Test
public void mul() {
Calculator calc = new Calculator();
int result = calc.mul(-5, -3);
assertEquals(15, result);
}
@Test
public void div() {
Calculator calc = new Calculator();
int result = calc.div(2, 3);
assertEquals(0, result);
}
}
這就是典型的 JUnit 測試的樣子。有趣的是:這裡使用了特殊方法assertEquals():它比較傳遞給它的參數,正如其名稱中的 equals 一詞所示。
如果傳遞給assertEquals() 的參數不相等,該方法將拋出異常並且測試將失敗。此異常不會阻止其他測試運行。
GO TO FULL VERSION