MSTEST0037: Verwenden Sie die richtigen "Assert"-Methoden
Eigenschaft | Wert |
---|---|
Regel-ID | MSTEST0037 |
Titel | Verwenden Sie die richtigen "Assert"-Methoden |
Kategorie | Verbrauch |
Fix is breaking or non-breaking | Nicht unterbrechend |
Standardmäßig aktiviert | Ja |
Standard-Schweregrad | Info |
Eingeführt in der Version | 3.7.0 |
Gibt es eine Codekorrektur | Ja |
Ursache
Die Verwendung von Assert Methoden auf eine bestimmte Art und Weise, wenn es eine bessere Alternative gibt.
Regelbeschreibung
Es gibt verschiedene Fälle, bei denen Sie diese Warnung erhalten:
Die Verwendung von
Assert.IsTrue(<expression> == null)
(mit allen Kombinationen, wieIsFalse
,!= null
,is null
, oderis not null
).Verwendung von
Assert.IsNull(<expression>)
orAssert.IsNotNull(<expression>)
ist eine bessere Alternative.Die Verwendung von
Assert.IsTrue(<expression1> == <expression2>)
(mit allen Kombinationen, wieIsFalse
oder!=
).Verwendung von
Assert.AreEqual(<expression1>, <expression2>)
orAssert.AreNotEqual(<expression1>, <expression2>)
ist eine bessere Alternative.Die Verwendung von
Assert.AreEqual(true, <expression>)
oderAssert.AreEqual(false, <expression>)
.Verwendung von
Assert.IsTrue(<expression>)
orAssert.IsFalse(<expression>)
ist eine bessere Alternative.Die Verwendung von
Assert.AreEqual(null, <expression>)
oderAssert.AreNotEqual(null, <expression>)
.Verwendung von
Assert.IsNull(<expression>)
orAssert.IsNotNull<expression>
ist eine bessere Alternative.
In vielen Fällen bieten die besseren Alternativen bessere Meldungen, wenn sie fehlschlagen. Außerdem sind sie einfacher zu lesen.
Wie man Verstöße behebt
Verwenden Sie die Methode der besseren Alternative.
Wann sollten Warnungen unterdrückt werden?
Wenn die Assertion das Verhalten eines benutzerdefinierten Operators überprüfen soll, können und sollten Sie die Warnung unterdrücken.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0037.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.