單元測試的原則

  • Right. 結果是否正確.
    • 首先,我們需要知道什麼是正確的結果.
    • 對於有大量數據的測試,考慮使用單獨的外部文件來存儲測試數據.
  • Boundary. 主要是CORRECT 原則.
    • Conformance. 一致性.
    • Ordering. 順序性.
      • 有序或無序的.
      • 一個很大的數據集合中某個數據的位置.
    • Range. 值是否位於合理的最大最小值之間.
    • Reference. 代碼是否引用了不在代碼本身控制範圍之外的外部資源.
    • Existence. 值是否存在.
    • Counting. 基數性.
      • 是否恰好有足夠的值.
    • Time. 時間性.
      • 事情的發生是否有序,是否在正確的時間.
  • InReverse. 相反性.
    • 當原方法插入一條記錄到DB時,可反向用查詢語句來看結果.
    • 有些Bug可能原和反方向方法中都出現,所以應使用不同的原理.
  • Cross.
    • 通常計算會有多個算法,考慮性能或其他因素選擇了一種,可用其它算法來驗證該算法的正確性.
  • Error.
    • 是否能夠強制錯誤發生
  • Performance.
    • 是否能夠滿足性能的要求.
  • A-trip原則.
    • Automatic. 測試所需的任何條件(網絡,DB),都應該成爲測試自動化的一部分,如Mock對象.
      • 測試必須能夠自己決定是否正確的通過.
    • Thorough.一個極端是所有代碼行,所有分支,所有異常都測試.
      • 可行的是僅測試最可能的情況,如邊界測試等.
    • Repeatable. 測試應(使用Mock) 來�隔離其它測試和周圍的環境.
      • 能夠多次執行,並且得到相同的結果.
    • Independent. 一個測試應只專注於一個函數,或一組函數.
      • 每個方法和類都有自己的setup和tear down. 來保證全新的開始.
    • Professional. 實現代碼的規則,也適合於測試代碼.



作者:滬上最強亞巴頓
鏈接:https://www.jianshu.com/p/c81fc5d550fa
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章