共用方式為


MSTEST0025:使用 'Assert.Fail' 而非始終失敗的判斷提示

屬性
規則識別碼 MSTEST0025
職稱 使用 'Assert.Fail' 而非始終失敗的判斷提示
類別 設計
修正程式是中斷或非中斷 不中斷
預設為啟用 Yes
預設嚴重性 資訊
在版本中引進 3.4.0
是否有程式代碼修正 Yes

原因

在呼叫判斷提示時若產生始終為 false 狀況,此規則會引發診斷。

檔案描述

透過始終失敗的判斷提示呼叫使用 Assert.Fail,可為程式碼提供更明確的意圖和更好的文件。

出現始終失敗的判斷提示 (例如 Assert.IsTrue(false)) 時,程式碼的讀者可能無法立即了解為何會有判斷提示,或其嘗試檢查的狀況為何。 這可能會對後續看到程式碼的開發人員造成混淆,並浪費時間。

相對地,使用 Assert.Fail 可讓您提供自訂失敗訊息,清楚說明判斷提示失敗的原因,及其正在處理的特定狀況或案例。 此訊息可作為判斷提示的意圖說明文件,協助其他開發人員了解判斷提示的目的,而無須深入探討程式碼。

整體而言,相較於始終失敗的判斷提示呼叫,在程式碼基底中使用 Assert.Fail 可提升明確性、文件和可維護性,因此是較好的選擇。

如何修正違規

請確定對 Assert.IsTrueAssert.IsFalseAssert.AreEqualAssert.AreNotEqualAssert.IsNullAssert.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

如需詳細資訊,請參閱 如何在隱藏程式代碼分析警告。