天天看點

Java單元測試(Junit+Mock+代碼覆寫率)

 原文見此處

  1. 接口功能測試:用來保證接口功能的正确性。
  2. 局部資料結構測試(不常用):用來保證接口中的資料結構是正确的
    1. 比如變量有無初始值
    2. 變量是否溢出
  3. 邊界條件測試
    1. 變量沒有指派(即為NULL)
    2. 變量是數值(或字元)
      1. 主要邊界:最小值,最大值,無窮大(對于DOUBLE等)
      2. 溢出邊界(期望異常或拒絕服務):最小值-1,最大值+1
      3. 臨近邊界:最小值+1,最大值-1
    3. 變量是字元串
      1. 引用“字元變量”的邊界
      2. 空字元串
      3. 對字元串長度應用“數值變量”的邊界
    4. 變量是集合
      1. 空集合
      2. 對集合的大小應用“數值變量”的邊界
      3. 調整次序:升序、降序
    5. 變量有規律
      1. 比如對于Math.sqrt,給出n^2-1,和n^2+1的邊界
  4. 所有獨立執行通路測試:保證每一條代碼,每個分支都經過測試
    1. 代碼覆寫率
      1. 語句覆寫:保證每一個語句都執行到了
      2. 判定覆寫(分支覆寫):保證每一個分支都執行到
      3. 條件覆寫:保證每一個條件都覆寫到true和false(即if、while中的條件語句)
      4. 路徑覆寫:保證每一個路徑都覆寫到
    2. 相關軟體
      1. Cobertura:語句覆寫
      2. Emma: Eclipse插件Eclemma
  5. 各條錯誤處理通路測試:保證每一個異常都經過測試