Skip to main content

驗證狀態改變

定義

驗證當呼叫方法後,物件的狀態變化與預期相符合。

流程

測試情境

  1. 有一個類別 LogAnalyzer,這類別提供 Log 相關的功能。
  2. 有一個方法IsValidLogFileName,可以用來檢查 log 檔案的附檔名是符合規範,且不區分大小寫。
  3. 有一個屬性WasLastFileNameValid,會記住最後一次驗證的結果。
  4. 當檔名為空時,需要拋出 Exception: ArgumentException
  5. 需要撰寫單元測試驗證這個方法的正確與否。
warning

下面的範例內容都很單純,不過不同測試框架的作法或是功能上會略有不同,寫法無法完全一致。
如果需要搭配練習,建議理解後,依目前自己正在使用/學習的工具嘗試看看。

以下範例的實際專案可以參考這裡

範例

namespace Lab.Test.Unit.LogNotification;

public class LogAnalyzer
{
public bool WasLastFileNameValid { get; set; }

public bool IsValidLogFileName(string fileName)
{
this.WasLastFileNameValid = false;
if (string.IsNullOrEmpty(fileName))
{
throw new ArgumentException("fileName has to be provided");
}

var isValid = fileName.EndsWith(".SLF", StringComparison.CurrentCultureIgnoreCase);
this.WasLastFileNameValid = isValid;

return isValid;
}
}

案例參考

單元測試的藝術