Dela via


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.AreNotEqualAssert.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 med expected, _expected eller Expected
  • expected eller notExpected argumentvariabeln börjar med actual
  • actual är inte en lokal variabel

Regelbeskrivning

MSTest Assert.AreEqual, Assert.AreNotEqualoch Assert.AreSameAssert.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.