Udostępnij za pośrednictwem


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 jak IsFalse, != null, is nulllub is not null).

    Użycie Assert.IsNull(<expression>) lub Assert.IsNotNull(<expression>) jest lepszą alternatywą.

  • Użycie Assert.IsTrue(<expression1> == <expression2>) (ze wszystkimi kombinacjami, takimi jak IsFalse lub !=).

    Użycie Assert.AreEqual(<expression1>, <expression2>) lub Assert.AreNotEqual(<expression1>, <expression2>) jest lepszą alternatywą.

  • Użycie Assert.AreEqual(true, <expression>) lub Assert.AreEqual(false, <expression>).

    Użycie Assert.IsTrue(<expression>) lub Assert.IsFalse(<expression>) jest lepszą alternatywą.

  • Użycie Assert.AreEqual(null, <expression>) lub Assert.AreNotEqual(null, <expression>).

    Użycie Assert.IsNull(<expression>) lub Assert.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.