| 財產 | 價值 |
|---|---|
| 規則標識碼 | MSTEST0037 |
| 標題 | 使用適當的 『Assert』 方法 |
| 類別 | 用法 |
| 修復是否會造成故障或不影響 | 不間斷 |
| 默認會啟用 | 是的 |
| 預設的嚴重程度 | 從版本 4.0.0 開始的警告,之前的資訊 |
| 在版本 中引進 | 3.7.0 |
| 是否有程式碼修正 | 是的 |
原因
當有更好的替代方案時,以特定方式使用 Assert 方法。
規則描述
在多種情況下,您會收到此警告:
使用
Assert.IsTrue(<expression> == null)(搭配所有組合,例如IsFalse、!= null、is null或is 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
如需詳細資訊,請參閱 如何在隱藏程式代碼分析警告。