MSTEST0017: Argumenty asercji powinny być przekazywane w prawidłowej kolejności
Właściwości | Wartość |
---|---|
Identyfikator reguły | MSTEST0017 |
Tytuł | Argumenty asercji powinny być przekazywane w prawidłowej kolejności |
Kategoria | Użycie |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone | Tak |
Ważność domyślna | Informacje |
Wprowadzone w wersji | 3.4.0 |
czy istnieje poprawka kodu | Tak |
Przyczyna
Ta reguła zgłasza problem, gdy wywołania metody Assert.AreEqual
, Assert.AreNotEqual
Assert.AreSame
lub Assert.AreNotSame
są następujące co najmniej jeden z poniższych wzorców:
-
actual
argument jest stałą lub wartością literału -
actual
zmienna argumentu rozpoczyna się odexpected
,_expected
lubExpected
-
expected
lubnotExpected
zmienna argumentu zaczyna się odactual
-
actual
nie jest zmienną lokalną
Opis reguły
MSTest Assert.AreEqual
, Assert.AreNotEqual
Assert.AreSame
i Assert.AreNotSame
oczekuje, że pierwszy argument będzie oczekiwaną/nieoczekiwaną wartością, a drugi argument będzie rzeczywistą wartością.
Posiadanie oczekiwanej wartości i rzeczywistej wartości w niewłaściwej kolejności nie spowoduje zmiany wyniku testu (powodzenie/niepowodzenie, gdy powinno), ale niepowodzenie potwierdzenia będzie zawierać mylące informacje.
Jak naprawić naruszenia
Upewnij się, że actual
argumenty i są expected
/notExpected
przekazywane w odpowiedniej kolejności.
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżenia z tej reguły, ponieważ spowodowałoby to wprowadzenie w błąd danych wyjściowych.
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 MSTEST0017
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0017
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0017.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.