| 屬性 | 值 |
|---|---|
| 規則識別碼 | MSTEST0025 |
| 職稱 | 使用 'Assert.Fail' 而非始終失敗的判斷提示 |
| 類別 | Usage |
| 修正程式是中斷或非中斷 | 不中斷 |
| 預設為啟用 | Yes |
| 預設嚴重性 | 從版本 4.0.0 開始的警告,之前的資訊 |
| 在版本中引進 | 3.4.0 |
| 是否有程式代碼修正 | Yes |
原因
在呼叫判斷提示時若產生始終為 false 狀況,此規則會引發診斷。
檔案描述
透過始終失敗的判斷提示呼叫使用 Assert.Fail,可為程式碼提供更明確的意圖和更好的文件。
出現始終失敗的判斷提示 (例如 Assert.IsTrue(false)) 時,程式碼的讀者可能無法立即了解為何會有判斷提示,或其嘗試檢查的狀況為何。 這可能會對後續看到程式碼的開發人員造成混淆,並浪費時間。
相對地,使用 Assert.Fail 可讓您提供自訂失敗訊息,清楚說明判斷提示失敗的原因,及其正在處理的特定狀況或案例。 此訊息可作為判斷提示的意圖說明文件,協助其他開發人員了解判斷提示的目的,而無須深入探討程式碼。
整體而言,相較於始終失敗的判斷提示呼叫,在程式碼基底中使用 Assert.Fail 可提升明確性、文件和可維護性,因此是較好的選擇。
如何修正違規
請確定對 Assert.IsTrue、Assert.IsFalse、Assert.AreEqual、Assert.AreNotEqual、Assert.IsNull 或 Assert.IsNotNull 的呼叫不會產生始終失敗的狀況。
隱藏警告的時機
不建議隱藏此規則的警告。
隱藏警告
如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable MSTEST0025
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0025
若要停用檔案、資料夾或項目的規則,請將其嚴重性設定為 組態檔中的 none。
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0025.severity = none
如需詳細資訊,請參閱 如何在隱藏程式代碼分析警告。