JUnit入門
JUnit入門[@more@] 一、簡介
JUnit是一個開源的java單元測試框架。在1997年,由 Erich Gamma 和 Kent Beck 開發完成。這兩個牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(你覺得眼熟一點都不奇怪)。
正如常言道:“麻雀雖小,五臟俱全。” JUnit設計的非常小巧,但是功能卻非常強大。
下面是JUnit一些特性的總結:
1) 提供的API可以讓你寫出測試結果明確的可重用單元測試用例
2) 提供了三種方式來顯示你的測試結果,而且還可以擴充套件
3) 提供了單元測試用例成批執行的功能
4) 超輕量級而且使用簡單,沒有商業性的欺騙和無用的嚮導
5) 整個框架設計良好,易擴充套件
對不同性質的被測物件,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。由於本文的性質,以下僅以Class測試為例。
二、
點選可以下載到最新版本的JUnit,本文使用的為3.8.1版。至於安裝或者配置之類,你只需要輕鬆的將下載下來的壓縮包中的jar檔案,放到你工程的classpath中就可以了。
這樣,你的系統中就可以使用JUnit編寫單元測試程式碼了(是不是很簡單)!
三、HelloWorld
記得在幾乎每本語言教學書上都能找到HelloWorld這個入門程式碼。今天在這裡,我們也從一個簡單到根本不用單元測試的例子入手。這是一個只會做兩數加減的超級簡單的計算器(小學一年級必備極品)。程式碼如下:
public class SampleCalculator
{
public int add(int augend , int addend)
{
return augend + addend ;
}
public int subtration(int minuend , int subtrahend)
{
return minuend - subtrahend ;
}
}
將上面的程式碼編譯透過。下面就是我為上面程式寫的一個單元測試用例:
//請注意這個程式裡面類名和方法名的特徵
import junit.framework.TestCase;
public class TestSample extends TestCase
{
public void testAdd()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.add(50 , 20);
assertEquals(70 , result);
}
public void testSubtration()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.subtration(50 , 20);
assertEquals(30 , result);
}
}
好了,在DOS命令列裡面輸入javac TestSample.java 將測試類編譯透過。然後再輸入 java junit.swingui.TestRunner TestSample 執行測試類,你會看到如下的視窗。
綠色說明單元測試透過,沒有錯誤產生;如果是紅色的,則就是說測試失敗了。這樣一個簡單的單元測試就完成了.
按照框架規定:編寫的所有測試類,必須繼承自junit.framework.TestCase類;裡面的測試方法,命名應該以Test開頭,必須是public void 而且不能有引數;而且為了測試查錯方便,儘量一個TestXXX方法對一個功能單一的方法進行測試;使用assertEquals等junit.framework.TestCase中的斷言方法來判斷測試結果正確與否。
你可以對比著上面測試類中的實現來體會下規定——很簡單!而且你在這個測試類中有加入多少個測試方法,就會執行多少個測試方法。
四、向前一步
學完了HelloWorld,你已經可以編寫標準的單元測試用例了。但是還有一些細節,這裡還要說明一下。不要急,很快的!
另外你是否注意到,上面彈出視窗的一個細節,在綠條下面有Errors、Failures統計。這兩者有何區別呢?
Failures作為單元測試所期望發生的錯誤,它預示你的程式碼有bug,不過也可能是你的單元測試程式碼有邏輯錯誤(注意是邏輯錯誤)。Errors不是你所期待的,發生了Error你可以按照下面的順序來檢查:
檢查測試所需的環境,如:資料庫連線
檢查單元測試程式碼
檢查你的系統程式碼
五、成批執行test case
這是前面提到的JUnit特性之一。它方便於系統單元測試的成批執行。使用起來也是非常簡單,先看下使用程式碼:
import junit.framework.Test;
import junit.framework.TestSuite;
public class TestAll{
public static Test suite(){
TestSuite suite = new TestSuite("TestSuite Test");
suite.addTestSuite( TestSample.class);
return suite;
}
}
這個測試程式的編譯、執行,和上面TestSample的方式是一樣的。
javac TestAll.java
java junit.swingui.TestRunner TestAll
怎麼樣?這樣你在suite方法裡面新增幾個TestCase就會執行幾個,而且它也可以新增TestSuite來將小一點的集合加入大的集合中來,方便了對於不斷增加的TestCase的管理和維護。
你覺得suite方法的作用是不是於java應用程式的main很類似?並且這裡的suite必須嚴格遵守上面的寫法!
JUnit是一個開源的java單元測試框架。在1997年,由 Erich Gamma 和 Kent Beck 開發完成。這兩個牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(你覺得眼熟一點都不奇怪)。
正如常言道:“麻雀雖小,五臟俱全。” JUnit設計的非常小巧,但是功能卻非常強大。
下面是JUnit一些特性的總結:
1) 提供的API可以讓你寫出測試結果明確的可重用單元測試用例
2) 提供了三種方式來顯示你的測試結果,而且還可以擴充套件
3) 提供了單元測試用例成批執行的功能
4) 超輕量級而且使用簡單,沒有商業性的欺騙和無用的嚮導
5) 整個框架設計良好,易擴充套件
對不同性質的被測物件,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。由於本文的性質,以下僅以Class測試為例。
二、
點選可以下載到最新版本的JUnit,本文使用的為3.8.1版。至於安裝或者配置之類,你只需要輕鬆的將下載下來的壓縮包中的jar檔案,放到你工程的classpath中就可以了。
這樣,你的系統中就可以使用JUnit編寫單元測試程式碼了(是不是很簡單)!
三、HelloWorld
記得在幾乎每本語言教學書上都能找到HelloWorld這個入門程式碼。今天在這裡,我們也從一個簡單到根本不用單元測試的例子入手。這是一個只會做兩數加減的超級簡單的計算器(小學一年級必備極品)。程式碼如下:
public class SampleCalculator
{
public int add(int augend , int addend)
{
return augend + addend ;
}
public int subtration(int minuend , int subtrahend)
{
return minuend - subtrahend ;
}
}
將上面的程式碼編譯透過。下面就是我為上面程式寫的一個單元測試用例:
//請注意這個程式裡面類名和方法名的特徵
import junit.framework.TestCase;
public class TestSample extends TestCase
{
public void testAdd()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.add(50 , 20);
assertEquals(70 , result);
}
public void testSubtration()
{
SampleCalculator calculator = new SampleCalculator();
int result = calculator.subtration(50 , 20);
assertEquals(30 , result);
}
}
好了,在DOS命令列裡面輸入javac TestSample.java 將測試類編譯透過。然後再輸入 java junit.swingui.TestRunner TestSample 執行測試類,你會看到如下的視窗。
綠色說明單元測試透過,沒有錯誤產生;如果是紅色的,則就是說測試失敗了。這樣一個簡單的單元測試就完成了.
按照框架規定:編寫的所有測試類,必須繼承自junit.framework.TestCase類;裡面的測試方法,命名應該以Test開頭,必須是public void 而且不能有引數;而且為了測試查錯方便,儘量一個TestXXX方法對一個功能單一的方法進行測試;使用assertEquals等junit.framework.TestCase中的斷言方法來判斷測試結果正確與否。
你可以對比著上面測試類中的實現來體會下規定——很簡單!而且你在這個測試類中有加入多少個測試方法,就會執行多少個測試方法。
四、向前一步
學完了HelloWorld,你已經可以編寫標準的單元測試用例了。但是還有一些細節,這裡還要說明一下。不要急,很快的!
另外你是否注意到,上面彈出視窗的一個細節,在綠條下面有Errors、Failures統計。這兩者有何區別呢?
Failures作為單元測試所期望發生的錯誤,它預示你的程式碼有bug,不過也可能是你的單元測試程式碼有邏輯錯誤(注意是邏輯錯誤)。Errors不是你所期待的,發生了Error你可以按照下面的順序來檢查:
檢查測試所需的環境,如:資料庫連線
檢查單元測試程式碼
檢查你的系統程式碼
五、成批執行test case
這是前面提到的JUnit特性之一。它方便於系統單元測試的成批執行。使用起來也是非常簡單,先看下使用程式碼:
import junit.framework.Test;
import junit.framework.TestSuite;
public class TestAll{
public static Test suite(){
TestSuite suite = new TestSuite("TestSuite Test");
suite.addTestSuite( TestSample.class);
return suite;
}
}
這個測試程式的編譯、執行,和上面TestSample的方式是一樣的。
javac TestAll.java
java junit.swingui.TestRunner TestAll
怎麼樣?這樣你在suite方法裡面新增幾個TestCase就會執行幾個,而且它也可以新增TestSuite來將小一點的集合加入大的集合中來,方便了對於不斷增加的TestCase的管理和維護。
你覺得suite方法的作用是不是於java應用程式的main很類似?並且這裡的suite必須嚴格遵守上面的寫法!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10901326/viewspace-965467/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JUnit4小白入門
- JUnit 4快速入門(轉載)
- Java Junit單元測試(入門必看篇)Java
- junit
- 入門入門入門 MySQL命名行MySql
- junit 4
- junit 使用JUnit測試預期異常
- JUnit3.8的Junit單元測試.
- Junit5系列-什麼是Junit5?
- 如何入CTF的“門”?——所謂入門就是入門
- 何入CTF的“門”?——所謂入門就是入門
- junit基礎
- JUnit basic annotation
- Junit-12
- JUnit的疑惑
- scala 從入門到入門+
- makefile從入門到入門
- ACM入門之新手入門ACM
- 如何下載Junit並在eclipse上配置JunitEclipse
- 使用android studio 建立app時報錯:Could not download junit.jar(junit:junit:4.12)AndroidAPPJAR
- 【小入門】react極簡入門React
- gRPC(二)入門:Protobuf入門RPC
- Junit5系列-Junit5中Assertions斷言類
- Junit5系列-Junit5中Assumptions假設類
- Junit5系列-Junit5中@Disabled禁止執行
- Spring整合JUnitSpring
- JUnit使用總結
- JUnit備忘錄
- JUnit —— TestSuite 的使用UI
- JUnit4教程
- JUnit使用經驗
- JUnit最佳實現
- JUnit測試方法
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- 新手入門,webpack入門詳細教程Web
- Android入門教程 | RecyclerView使用入門AndroidView
- linux新手入門――shell入門(轉)Linux
- Junit5系列-Junit5中@DisplayName自定義名稱