MSTEST0032: Przejrzyj lub usuń asercję, ponieważ jej warunek jest zawsze prawdziwy

Właściwość Wartość
Identyfikator reguły MSTEST0032
Tytuł Przejrzyj lub usuń asercję, ponieważ jej warunek jest znany jako zawsze prawdziwy.
Kategoria Użycie
Poprawka powodująca niezgodność lub niepowodująca niezgodności Nierozdzielający
Domyślnie włączone Tak
Domyślny poziom ważności Ostrzeżenie rozpoczynające się od wersji 4.0.0, informacje przed
Wprowadzone w wersji 3.5.0
czy istnieje poprawka kodu Nie

Przyczyna

Ta reguła zgłasza diagnostykę, gdy wywołanie asercji powoduje, że warunek jest zawsze prawdziwy.

Opis reguły

Asercja, która zawsze przechodzi, taka jak Assert.IsTrue(true), nie może wykryć regresji w kodzie poddawanym testom. Może to sprawić, że test sprawia wrażenie, że weryfikuje zachowanie, porównując jedynie stałą lub wartość z samą sobą.

Przejrzyj asercję pod kątem błędu kopiowania i wklejania, brakującego porównania lub nieprawidłowej zmiennej. Sprawdź warunek na podstawie rzeczywistego wyniku lub usuń asercję, która nie weryfikuje żadnego działania.

Jak naprawić naruszenia

Upewnij się, że wywołania do Assert.IsTrue, Assert.IsFalse, Assert.AreEqual, Assert.AreNotEqual, Assert.IsNull lub Assert.IsNotNull nie generują warunków zawsze prawdziwych.

Kiedy pomijać ostrzeżenia

Nie zaleca się wyciszania ostrzeżeń z tej reguły.

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 MSTEST0032
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0032

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0032.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.