共用方式為


MSTEST0037:使用適當的「Assert」方法

財產 價值
規則標識碼 MSTEST0037
標題 使用適當的 『Assert』 方法
類別 用法
修復是否會造成故障或不影響 不間斷
默認會啟用 是的
預設的嚴重程度 資訊
在版本 中引進 3.7.0
是否有程式碼修正 是的

原因

當有更好的替代方案時,以特定方式使用 Assert 方法。

規則描述

在多種情況下,您會收到此警告:

  • 使用 Assert.IsTrue(<expression> == null)(搭配所有組合,例如 IsFalse!= nullis nullis not null)。

    使用 Assert.IsNull(<expression>)Assert.IsNotNull(<expression>) 是較好的替代方案。

  • 使用 Assert.IsTrue(<expression1> == <expression2>)(搭配所有組合,例如 IsFalse!=)。

    使用 Assert.AreEqual(<expression1>, <expression2>)Assert.AreNotEqual(<expression1>, <expression2>) 是較好的替代方案。

  • 使用 Assert.AreEqual(true, <expression>)Assert.AreEqual(false, <expression>)

    使用 Assert.IsTrue(<expression>)Assert.IsFalse(<expression>) 是較好的替代方案。

  • 使用 Assert.AreEqual(null, <expression>)Assert.AreNotEqual(null, <expression>)

    使用 Assert.IsNull(<expression>)Assert.IsNotNull<expression> 是較好的替代方案。

在許多情況下,較佳的替代方法會在訊息失敗時提供更佳的訊息,而且更容易閱讀。

如何修正違規

使用更好的替代方法。

隱藏警告的時機

如果斷言是為了驗證使用者定義運算符的行為,您可以且應該抑制警告。

隱藏警告

如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。

#pragma warning disable MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037

若要停用檔案、資料夾或項目的規則,請將其嚴重性設定為 組態檔中的 none

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0037.severity = none

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