1. 程式人生 > >Java單元測試工具:JUnit4(二)——JUnit使用詳解

Java單元測試工具:JUnit4(二)——JUnit使用詳解

(二)JUnit使用注意點及測試失敗的兩種情況

        看了慕課網的JUnit視訊教程: http://www.imooc.com/learn/356,總結筆記。         這篇筆記記錄JUnit使用的一些注意點,或者說約定俗成的地方;以及介紹了導致測試失敗的兩種情況。

1.JUnit使用的最佳實踐

        ①測試方法上必須使用@Test進行修飾
        ②測試方法必須使用public void 進行修飾,不能帶任何的引數
        ③新建一個原始碼目錄來存放我們的測試程式碼,即將測試程式碼和專案業務程式碼分開
        ④測試類所在的包名應該和被測試類所在的包名保持一致
        ⑤測試單元中的每個方法必須可以獨立測試,測試方法間不能有任何的依賴
        ⑥測試類使用Test作為類名的字尾(不是必須)
        ⑦測試方法使用test作為方法名的字首(不是必須)

1.1 測試程式碼和專案程式碼分開

        結構應如下:包名要一致;最好以Test作為測試類字尾;最好以test作為測試方法字首。

1.2 獨立測試類的方法

        專案結構圖中,展開測試類的所以方法,右鍵其中一個方法,Run As,JUnit Test:


2.測試失敗的兩種情況

        注意:測試用例是用來達到測試想要的預期結果,而不能測試出程式的邏輯錯誤。
        比如:你需要寫一個計算長方形面積的方法,而你錯誤地認為周長的公式就是計算面積的。所以在測試方法中,就算結果達到了你的預期,但這顯然不是正確的計算面積方法。

2.1 新建測試類

        如下: [java]   view plain  copy
  1. package
     jtzen9.util;  
  2.   
  3. import org.junit.Assert;  
  4. import org.junit.Test;  
  5.   
  6. public class ErrorAndFailureTest {  
  7.   
  8.     @Test  
  9.     public void testAdd() {  
  10.         int result = new Calculate().add(3,3);  
  11.         Assert.assertEquals("加法有問題"5, result); //預期值與程式輸出不一樣  
  12.     }  
  13.   
  14.     @Test  
  15.     public void testDivide() {  
  16.         int result = new Calculate().divide(6,0);  //除法中,除數為0  
  17.         Assert.assertEquals("除法有問題"3, result);  
  18.     }  
  19. }  

2.2 執行結果

        ①testAdd()方法是failure錯誤

        ②testDivide()方法是error錯誤

2.3 說明

     ①Failure一般由單元測試使用的斷言方法判斷失敗所引起的,這經表示測試點發現了問題,就是說程式輸出的結果和我們預期的不一樣。
     ②Error是由程式碼異常引起的,它可以產生於測試程式碼本身的錯誤,也可以是被測試程式碼中的一個隱藏的bug