Sdílet prostřednictvím


MSTEST0017: Argumenty kontrolního výrazu by měly být předány ve správném pořadí.

Vlastnost Hodnota
ID pravidla MSTEST0017
Název Argumenty kontrolního výrazu by měly být předány ve správném pořadí.
Kategorie Využití
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení Ano
Výchozí závažnost Upozornění počínaje verzí 4.0.0, informace před upozorněním.
Představeno ve verzi 3.4.0
Existuje oprava kódu Ano

Příčina

Toto pravidlo vyvolá problém při volání Assert.AreEqual, Assert.AreNotEqualAssert.AreSame nebo Assert.AreNotSame jsou následující jeden nebo více vzorů:

  • actual argument je konstantní nebo literální hodnota.
  • actual argumentová proměnná začíná řetězcem expected, _expected nebo Expected
  • expected nebo notExpected proměnná argumentu začíná na actual
  • actual není místní proměnná.

Popis pravidla

MSTest Assert.AreEqual, Assert.AreNotEqualAssert.AreSame a Assert.AreNotSame očekává, že první argument bude očekávaná/neočekávaná hodnota a druhý argument bude skutečnou hodnotou.

Když budete mít očekávanou hodnotu a skutečnou hodnotu v nesprávném pořadí, nezmění se výsledek testu (úspěšné nebo neúspěšné), ale selhání kontrolního výrazu bude obsahovat zavádějící informace.

Jak opravit porušení

Ujistěte se, že actualexpected/notExpected jsou argumenty předány ve správném pořadí.

Kdy potlačit upozornění

Nepotlačujte upozornění z tohoto pravidla, protože by to vedlo k zavádějícímu výstupu.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable MSTEST0017
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0017

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

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

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.