天天看點

java中的單元測試Junit4

首先就是主要簡單的講一下Junit的使用,屬于傻瓜式速成教程,gogogogogogogo!

一:什麼是單元測試:

  我們在編寫大型程式的時候,需要寫成千上萬個方法或函數,這些函數的功能可能很強大,但我們在程式中隻用到該函數的一小部分功能,并且經過調試可以确定,這一小部分功能是正确的。但是,我們同時應該確定每一個函數都完全正确,因為如果我們今後如果對程式進行擴充,用到了某個函數的其他功能,而這個功能有bug的話,那絕對是一件非常郁悶的事情。是以說,每編寫完一個函數之後,都應該對這個函數的方方面面進行測試,這樣的測試我們稱之為單元測試。傳統的程式設計方式,進行單元測試是一件很麻煩的事情,你要重新寫另外一個程式,在該程式中調用你需要測試的方法,并且仔細觀察運作結果,看看是否有錯。這樣的話太過于麻煩了,本文簡要介紹一下在Eclipse中使用JUnit4進行單元測試的方法。用更加通俗的話來描述單元測試就是:寫了個類,要給别人用,會不會有bug?怎麼辦?測試一下。用main方法測試好不好?這種方法我們經常用,就是寫一個方法實作一些功能,把方法的調用方式放在main函數中。這樣的測試方式一個是使得main函數太過于混亂,再者測試過程需要人的仔細觀察來辨識每個函數的功能實作,哪一個函數出錯了,哪一個函數沒有輸出之類的問題層出不窮,單元測試就是來解決這些問題的。下面我會就單元測試的每一步給出詳細的圖解和描述。

二:進行單元測試:

  首先我先建立一個就是一個簡單的計算機類,裡面就寫一個加除的方法;

 

1 package junit;
 2 
 3 public class Reckon {//一個計算類
 4 
 5         //簡單的實作兩個計算方法
 6     public int add(int num1,int num2){
 7         return num1+num2;
 8     }
 9     
10     public int divide(int num1,int num2){
11         return num1/num2;
12     }
13     
14     public static void main(String[] args) {
15         //傳統的把方法的調用方式放在main函數中測試運作
16         int num=new Reckon().add(1, 2);
17         System.out.println(num);
18     }
19 }      

  下面進行單元測試:

  右鍵建立:選擇junit Test Case

java中的單元測試Junit4

接着next,出現下面的畫面,用junit4,在下面選擇要測試的類,給這個測試類起一個名字。

java中的單元測試Junit4

點選next出現下面的畫面,這是選擇要測試的方法;

java中的單元測試Junit4

點選finish,添加jar包;

java中的單元測試Junit4

這一步提示我們是否将我們需要的JUnit 4的相關包加入到我們項目的ClassPath路徑下,點選OK就行,因為Eclipse中包含JUnit的jar包。

 做完上面的會自動生成這樣一個測試類;

  

1 package junit;
 2 
 3 import static org.junit.Assert.*;
 4 
 5 import org.junit.Test;
 6 
 7 public class Reckon_Test {
 8 
 9     @Test
10     public void testAdd() {
11         fail("Not yet implemented");
12     }
13 
14     @Test
15     public void testDivide() {
16         fail("Not yet implemented");
17     }
18 
19 }      

Test注解表示這是個測試方法;

修改裡面的方法:

1 package junit;
 2 
 3 import static org.junit.Assert.*;
 4 
 5 import org.junit.Test;
 6 
 7 public class Reckon_Test {
 8 
 9     @Test
10     public void testAdd() {
11         int z=new Reckon().add(2, 8);
12         assertEquals(10,z);//判斷得到的z是不是10也就是正确的答案
13     }
14 
15     @Test
16     public void testDivide() {
17         int z=new Reckon().divide(8, 2);
18         System.out.println(z);
19     }
20 
21 }      

  右鍵選擇Junit Test 運作

java中的單元測試Junit4

  綠色代表測試成功,其中Error:程式出錯       Failures:測試失敗

 如果我們把除數修改為零,則會出現數學異常

java中的單元測試Junit4

常用的方法:

java中的單元測試Junit4

歡迎大家一起說出自己的想法。

繼續閱讀