1. 程式人生 > 實用技巧 >《單元測試之道》Java版學習日誌

《單元測試之道》Java版學習日誌

前言

  在軟體工程這門課程中,我有幸在老師的推薦下讀了這本書。首先談單元測試的概念,單元測試是開發者編寫的一小段程式碼,用於檢驗被測程式碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件或某個特定函式的行為。我們使用單元測試,可以讓我們的設計更好,甚至大大減少花在除錯上的時間。

首個單元測試

  java中使用asserEquals()方法來比較期望值和真實值是否相等

 public void calc() {
        MSA msa = new MSA();
        int a[] = {1,-2,3};
        int length = 3;
        msa.Calc(a, length);
        Assert.assertEquals(3, msa.sum);
}

使用JUnit編寫測試

介紹幾種斷言

(1)asserEquals,以上介紹過

(2)assertNull

assertNull([{String message},java.lang.Object object),驗證給定物件是否為空

(3)assertSame

assertSame({String message},expected,acture),驗證expected與acture是否為同一個物件

(4)assertTure

assertTure(true),驗證給定的二元條件是否為真

測試那些內容

  Right-BICEP,Right——結果是否正確,B——是否所有的邊界都正確,I——能查一下反向關聯嗎,C——能用其他手段交叉檢查一下結果嗎,E——你能否可以強制錯誤條件發生,P——是否滿足效能要求。

邊界條件

  用CORRECT來表示我們需要考慮哪些邊界條件。

  • 一致性
  • 有序性
  • 區間性
  • 引用,耦合性
  • 基數性
  • 時間性

使用Mock物件

  Mock物件是真實物件在除錯期的替代品。在使用mock物件進行測試時,分為三個步驟(1)使用一個介面來描述這個物件。(2)為產品程式碼實現這個介面。(3)以測試為目的,在mock物件中實現這個介面。

好的測試所具有的品質

  A-TPIR:

  • 自動化
  • 徹底的
  • 可重複
  • 獨立的
  • 專業的

測試類的不變性

  類的不變性是指一個或者幾個針對類物件的斷言。如果一個類物件有效的話,這些斷言必須為真。例如,對一個實現了sorted list的類,它的不變性就是:它的內容必須是有序的。

總結

  總之,一個好的程式必須要經過測試才能確保安全有效的執行,對提高軟體質量是有很大幫助的。學習這本書對於單元測試有了更深的理解。