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łę.
C#
#pragmawarning disable MSTEST0037// The code that's violating the rule is on this line.#pragmawarning restore MSTEST0037
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.