談談單元測試之(二):測試工具 JUnit 3
阿新 • • 發佈:2018-12-20
前言
上一篇文章《 為什麼要進行煩人的單元測試?》討論了一下現階段軟體開發中,程式設計師們測試情況的現狀。這篇文章中,我打算介紹一下單元測試的工具(外掛),並且推薦大家以後在開發中,真正的用上單元測試,用好單元測試。
說明
這篇文章的主題,主要是介紹一下 JUnit 3,雖然 JUnit 3 已經不推薦使用了,但它也曾是風靡一時。這裡旨在討論一下 JUnit 3 的使用,以及它的內部構造,就當是為下一篇文章介紹 JUnit 4 做鋪墊吧。之前已經把單元測試的重要性都講出來了,這裡就不再贅述了,直接進入正題。
介紹
JUnit 是由 Erich Gamma 和 Kent Beck 編寫的一個迴歸測試框架(regression testing framework)。JUnit 測試是程式設計師測試,即所謂白盒測試。它是一個 Java 語言的測試框架,多數 Java 的開發環境都已經集成了 JUnit 作為單元測試的工具。
特性
- 用於測試期望結果的斷言(Assertion)
- 用於共享共同測試資料的測試工具
- 用於方便的組織和執行測試的測試套件
- 圖形和文字的測試執行器
使用
下載
- 下載 JUnit 3.8.1.jar 包(這裡提供了下載地址)
加入專案
- 把壓縮包中的 junit3.8.1.jar 檔案,加入到專案的 classpath 中。
基本流程
- 寫測試類並繼承 TestCase 類
- 寫測試方法 testXXX()
- 寫測試套件類,將 test case 加入到 test suite
- 執行JUnit Test 進行測試
演示程式碼
- <span style=“font-family:Microsoft YaHei;”>package com.tgb.test;
- import junit.framework.Assert;
- import junit.framework.Test;
- import junit.framework.TestCase;
- import junit.framework.TestSuite;
- // 1. 繼承 TestCase 類
- public class CalculatorTest extends TestCase {
- // 2. 測試方法必須以 test 開頭
- public void testAdd() {
- int result = new Calculator().add(1, 2);
- Assert.assertEquals(3, result);
- }
- // 3. 將 testcase 加入 testsuite,可以同時測試多個用例
- public static Test suite() {
- return new TestSuite(CalculatorTest.class);
- }
- }</span>
<span style="font-family:Microsoft YaHei;">package com.tgb.test;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
// 1. 繼承 TestCase 類
public class CalculatorTest extends TestCase {
// 2. 測試方法必須以 test 開頭
public void testAdd() {
int result = new Calculator().add(1, 2);
Assert.assertEquals(3, result);
}
// 3. 將 testcase 加入 testsuite,可以同時測試多個用例
public static Test suite() {
return new TestSuite(CalculatorTest.class);
}
}</span>
剖析概念
- TestCase(測試用例)
- TestSuite(測試套件)
- Assert(斷言)
主要有如下幾個斷言方法:
assertTrue/False():判斷一個條件是 true 還是 false。
fail():失敗,可以有訊息,也可以沒有訊息。
assertEquals():判斷是否想等,可以指定輸出錯誤資訊。注意不同資料型別所使用的 assertEquals 方法引數有所不同。
assertNotNull/Null():判斷一個物件是否為空。
assertSame/NotSame():判斷兩個物件是否指向同一個物件。
failNotSame/failNotEquals():當不指向同一個記憶體地址或者不相等的時候,輸出錯誤資訊。錯誤資訊為指定的格式。
- setUp
- tearDown
結束語
JUnit 3 就介紹到這,可以看出,JUnit 3 還是很簡單的,只不過在每次編寫測試類時,都需要繼承 TestCase 類,這就無形之中給測試類增加了一些牽絆。下一篇文章中,我們一起來討論一下 JUnit 4 的一些新特性,以及是如何簡化測試用例的。
不要著急哦,下一篇馬上就到。。。
【原創】地址:http://blog.csdn.net/happylee6688/article/details/38059833
前言
上一篇文章《 為什麼要進行煩人的單元測試?》討論了一下現階段軟體開發中,程式設計師們測試情況的現狀。這篇文章中,我打算介紹一下單元測試的工具(外掛),並且推薦大家以後在開發中,真正的用上單元測試,用好單元測試。
說明
這篇文章的主題,主要是介紹一下 JUnit 3,雖然 JUnit 3 已經不推薦使用了,但它也曾是風靡一時。這裡旨在討論一下 JUnit 3 的使用,以及它的內部構造,就當是為下一篇文章介紹 JUnit 4 做鋪墊吧。之前已經把單元測試的重要性都講出來了,這裡就不再贅述了,直接進入正題。
介紹
JUnit 是由 Erich Gamma 和 Kent Beck 編寫的一個迴歸測試框架(regression testing framework)。JUnit 測試是程式設計師測試,即所謂白盒測試。它是一個 Java 語言的測試框架,多數 Java 的開發環境都已經集成了 JUnit 作為單元測試的工具。
特性
- 用於測試期望結果的斷言(Assertion)
- 用於共享共同測試資料的測試工具
- 用於方便的組織和執行測試的測試套件
- 圖形和文字的測試執行器
使用
下載
- 下載 JUnit 3.8.1.jar 包(這裡提供了下載地址)
加入專案
- 把壓縮包中的 junit3.8.1.jar 檔案,加入到專案的 classpath 中。
基本流程
- 寫測試類並繼承 TestCase 類
- 寫測試方法 testXXX()
- 寫測試套件類,將 test case 加入到 test suite
- 執行JUnit Test 進行測試
演示程式碼
- <span style=“font-family:Microsoft YaHei;”>package com.tgb.test;
- import junit.framework.Assert;
- import junit.framework.Test;
- import junit.framework.TestCase;
- import junit.framework.TestSuite;
- // 1. 繼承 TestCase 類
- public class CalculatorTest extends TestCase {
- // 2. 測試方法必須以 test 開頭
- public void testAdd() {
- int result = new Calculator().add(1, 2);
- Assert.assertEquals(3, result);
- }
- // 3. 將 testcase 加入 testsuite,可以同時測試多個用例
- public static Test suite() {
- return new TestSuite(CalculatorTest.class);
- }
- }</span>
<span style="font-family:Microsoft YaHei;">package com.tgb.test;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
// 1. 繼承 TestCase 類
public class CalculatorTest extends TestCase {
// 2. 測試方法必須以 test 開頭
public void testAdd() {
int result = new Calculator().add(1, 2);
Assert.assertEquals(3, result);
}
// 3. 將 testcase 加入 testsuite,可以同時測試多個用例
public static Test suite() {
return new TestSuite(CalculatorTest.class);
}
}</span>
剖析概念
- TestCase(測試用例)
- TestSuite(測試套件)
- Assert(斷言)
主要有如下幾個斷言方法:
assertTrue/False():判斷一個條件是 true 還是 false。
fail():失敗,可以有訊息,也可以沒有訊息。
assertEquals():判斷是否想等,可以指定輸出錯誤資訊。注意不同資料型別所使用的 assertEquals 方法引數有所不同。
assertNotNull/Null():判斷一個物件是否為空。
assertSame/NotSame():判斷兩個物件是否指向同一個物件。
failNotSame/failNotEquals():當不指向同一個記憶體地址或者不相等的時候,輸出錯誤資訊。錯誤資訊為指定的格式。
- setUp
- tearDown
結束語
JUnit 3 就介紹到這,可以看出,JUnit 3 還是很簡單的,只不過在每次編寫測試類時,都需要繼承 TestCase 類,這就無形之中給測試類增加了一些牽絆。下一篇文章中,我們一起來討論一下 JUnit 4 的一些新特性,以及是如何簡化測試用例的。
不要著急哦,下一篇馬上就到。。。