MSTEST0037: Použijte správné metody Assert.
Vlastnost | Hodnota |
---|---|
Pravidlo ID | MSTEST0037 |
název | Použití správných metod Assert |
Kategorie | Použití |
Oprava je destruktivní nebo nedestruktivní | Nepřerušované |
Povoleno ve výchozím nastavení | Ano |
výchozí úroveň závažnosti | Informace |
Představeno ve verzi | 3.7.0 |
Existuje oprava kódu | Ano |
Příčina
Použití Assert metod určitým způsobem, pokud existuje lepší alternativa.
Popis pravidla
Existuje několik případů, kdy se zobrazí toto upozornění:
Použití
Assert.IsTrue(<expression> == null)
(se všemi kombinacemi, jako jsouIsFalse
,!= null
,is null
nebois not null
).Lepší alternativou je použití
Assert.IsNull(<expression>)
neboAssert.IsNotNull(<expression>)
.Použití
Assert.IsTrue(<expression1> == <expression2>)
(se všemi kombinacemi, jako jsouIsFalse
nebo!=
).Lepší alternativou je použití
Assert.AreEqual(<expression1>, <expression2>)
neboAssert.AreNotEqual(<expression1>, <expression2>)
.Použití
Assert.AreEqual(true, <expression>)
neboAssert.AreEqual(false, <expression>)
.Lepší alternativou je použití
Assert.IsTrue(<expression>)
neboAssert.IsFalse(<expression>)
.Použití
Assert.AreEqual(null, <expression>)
neboAssert.AreNotEqual(null, <expression>)
.Lepší alternativou je použití
Assert.IsNull(<expression>)
neboAssert.IsNotNull<expression>
.
V mnoha případech lepší alternativy poskytují lepší zprávy, když selžou a jsou také snadněji čitelné.
Jak opravit porušení
Použijte lepší alternativní metodu.
Kdy potlačit upozornění
Pokud je asercion určen k ověření chování uživatelsky definovaného operátoru, můžete a měli byste potlačit upozornění.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037
Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none
v konfiguračním souboru .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0037.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.