| title | MSTEST0037: Use proper 'Assert' methods | ||
|---|---|---|---|
| description | Learn about code analysis rule MSTEST0037: Use proper 'Assert' methods. | ||
| ms.date | 11/17/2024 | ||
| f1_keywords |
|
||
| helpviewer_keywords |
|
||
| author | Youssef1313 | ||
| ms.author | ygerges |
| 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 (Warning in 4.0) |
| Introduced in version | 3.7.0 |
| Is there a code fix | Yes |
The use of xref:Microsoft.VisualStudio.TestTools.UnitTesting.Assert methods in a specific way when there is a better alternative.
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, likeIsFalseor!=).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.
Use the better alternative method.
If the assert is intended to verify the behavior of a user-defined operator, you can and should suppress the 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 MSTEST0037To disable the rule for a file, folder, or project, set its severity to none in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0037.severity = noneFor more information, see How to suppress code analysis warnings.