MSTEST0017: Argument för försäkran ska skickas i rätt ordning
Property | Värde |
---|---|
Regel-ID | MSTEST0017 |
Title | Argument för försäkran ska skickas i rätt ordning |
Kategori | Förbrukning |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard | Ja |
Standard allvarlighetsgrad | Info |
Introducerad i version | 3.4.0 |
Finns det en kodkorrigering | Ja |
Orsak
Den här regeln genererar ett problem när anrop till Assert.AreEqual
, Assert.AreNotEqual
Assert.AreSame
eller Assert.AreNotSame
följer ett eller flera av mönstren nedan:
-
actual
argumentet är ett konstant eller literalt värde -
actual
argumentvariabeln börjar medexpected
,_expected
ellerExpected
-
expected
ellernotExpected
argumentvariabeln börjar medactual
-
actual
är inte en lokal variabel
Regelbeskrivning
MSTest Assert.AreEqual
, Assert.AreNotEqual
och Assert.AreSame
Assert.AreNotSame
förvänta dig att det första argumentet är det förväntade/oväntade värdet och det andra argumentet är det faktiska värdet.
Att ha det förväntade värdet och det faktiska värdet i fel ordning ändrar inte resultatet av testet (lyckas/misslyckas när det ska), men kontrollfelet innehåller vilseledande information.
Så här åtgärdar du överträdelser
Se till att det actual
och expected
/notExpected
argumenten skickas i rätt ordning.
När du ska ignorera varningar
Ignorera inte en varning från den här regeln eftersom det skulle leda till vilseledande utdata.
Undertryck en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable MSTEST0017
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0017
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0017.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.