MSTEST0037:使用正确的“Assert”方法

properties
规则 ID MSTEST0037
标题 使用正确的“断言”方法
类别 使用情况
修复是中断修复还是非中断修复 非中断
默认已启用
默认严重性 信息
引入版本 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

有关详细信息,请参阅如何禁止显示代码分析警告