MSTEST0037: Użyj odpowiednich metod "Assert"
Własność | Wartość |
---|---|
identyfikator reguły | MSTEST0037 |
Tytuł | Użyj odpowiednich metod 'Assert' |
Kategoria | Użytkowanie |
Poprawka powoduje problemy lub ich nie powoduje | Niezgodność |
włączone domyślnie | Tak |
domyślne natężenie | Informacje |
wprowadzone w wersji | 3.7.0 |
czy istnieje poprawka kodu | Tak |
Przyczyna
Zastosowanie metod Assert w określony sposób, gdy istnieje lepsza alternatywa.
Opis reguły
Istnieje wiele przypadków, w których otrzymujesz to ostrzeżenie:
Użycie
Assert.IsTrue(<expression> == null)
(ze wszystkimi kombinacjami, takimi jakIsFalse
,!= null
,is null
lubis not null
).Użycie
Assert.IsNull(<expression>)
lubAssert.IsNotNull(<expression>)
jest lepszą alternatywą.Użycie
Assert.IsTrue(<expression1> == <expression2>)
(ze wszystkimi kombinacjami, takimi jakIsFalse
lub!=
).Użycie
Assert.AreEqual(<expression1>, <expression2>)
lubAssert.AreNotEqual(<expression1>, <expression2>)
jest lepszą alternatywą.Użycie
Assert.AreEqual(true, <expression>)
lubAssert.AreEqual(false, <expression>)
.Użycie
Assert.IsTrue(<expression>)
lubAssert.IsFalse(<expression>)
jest lepszą alternatywą.Użycie
Assert.AreEqual(null, <expression>)
lubAssert.AreNotEqual(null, <expression>)
.Użycie
Assert.IsNull(<expression>)
lubAssert.IsNotNull<expression>
jest lepszą alternatywą.
W wielu przypadkach lepsze alternatywy zapewniają lepsze komunikaty, gdy kończą się niepowodzeniem i są również łatwiejsze do odczytania.
Jak naprawić naruszenia
Użyj lepszej metody alternatywnej.
Kiedy pomijać ostrzeżenia
Jeśli asercja ma na celu zweryfikowanie zachowania operatora zdefiniowanego przez użytkownika, możesz i powinien pominąć ostrzeżenie.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0037.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.