單元測試規范


命名

  • 單元測試項目名:[被測項目].Tests
  • 類名:[被測類]Tests
  • 方法名:[被測方法][測試場景][預期行為]

舉個例子,現在要對Shape.Core.dll中的Line類的Contains方法寫單元測試,測試其在傳入一個當前直線上的點時,能正確返回true,按照規范應該這樣命名:

 項目名:Shape.Core.Tests
 類名:LineTests
 方法名:Contains_PointIsOnLine_ReturnTrue()

當然,注釋也是很重要的,一般可以在注釋中注明測試條件和預期行為。

分組

在單元測試方法中增加分組,可以更好的管理單元測試,也方便自動化測試,只需要在在測試方法上,使用[TestCategory(name)]特性進行標記。標記分組后,可針對組單獨運行或者調試測試用例。
組的命名規則可參考:[模塊][類名][功能]_[額外用途],如:

步驟

一個完整的單元測試用例應該包含如下三個部分

  • Arrange:准備當前測試場景的前置條件
  • Action:執行被測試方法
  • Assert:對被測試方法的執行結果進行斷言判斷(幾乎每種測試框架都提供了Assert庫,當然,也可以根據情況豐富我們自己的Assert庫)

還是Line類的Contains方法,請看按照標准步驟的代碼:

/// <summary>
/// 條件:點point在直線line上
/// 預期:<see cref="Line.Contains"/> 方法判斷點在直線上
/// </summary>
[TestMethod]
public void Contains_PointIsOnLine_ReturnsTrue()
{
    //// Arrange
    var point = new Point(1, 1);
    var line = new Line(new Point(0, 2), new Point(2, 0));
  
  
    //// Act
    var contains = line.Contains(point);
  
  
    //// Assert
    Assert.IsTrue(contains);
}

以上命名規則和步驟是業界廣泛使用的,每一位開發者務必遵循。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM