MSTEST0037: Use proper 'Assert' methods
Property | Value |
---|---|
Rule ID | MSTEST0037 |
Title | Use proper 'Assert' methods |
Category | Usage |
Fix is breaking or non-breaking | Non-breaking |
Enabled by default | Yes |
Default severity | Info |
Introduced in version | 3.7.0 |
Is there a code fix | Yes |
Cause
The use of Assert methods in a specific way when there is a better alternative.
Rule description
There are multiple cases where you get this warning:
The use of
Assert.IsTrue(<expression> == null)
(with all combinations, likeIsFalse
,!= null
,is null
, oris not null
).Using
Assert.IsNull(<expression>)
orAssert.IsNotNull(<expression>)
is a better alternative.The use of
Assert.IsTrue(<expression1> == <expression2>)
(with all combinations, likeIsFalse
or!=
).Using
Assert.AreEqual(<expression1>, <expression2>)
orAssert.AreNotEqual(<expression1>, <expression2>)
is a better alternative.The use of
Assert.AreEqual(true, <expression>)
orAssert.AreEqual(false, <expression>)
.Using
Assert.IsTrue(<expression>)
orAssert.IsFalse(<expression>)
is a better alternative.The use of
Assert.AreEqual(null, <expression>)
orAssert.AreNotEqual(null, <expression>)
.Using
Assert.IsNull(<expression>)
orAssert.IsNotNull<expression>
is a better alternative.
In many cases, the better alternatives provide better messages when they fail and are also easier to read.
How to fix violations
Use the better alternative method.
When to suppress warnings
If the assert is intended to verify the behavior of a user-defined operator, you can and should suppress the warning.
Suppress a warning
If you just want to suppress a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0037.severity = none
For more information, see How to suppress code analysis warnings.