Delen via


MSTEST0017: Assertieargumenten moeten in de juiste volgorde worden doorgegeven

Eigenschappen Weergegeven als
Regel-id MSTEST0017
Titel Assertieargumenten moeten in de juiste volgorde worden doorgegeven
Categorie Gebruik
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld Ja
Standaard ernst Info
Geïntroduceerd in versie 3.4.0
Is er een oplossing voor de code Ja

Oorzaak

Deze regel veroorzaakt een probleem wanneer aanroepen naarAssert.AreEqual, Assert.AreNotEqualAssert.AreSame of Assert.AreNotSame een of meer van de onderstaande patronen volgen:

  • actual argument is een constante of letterlijke waarde
  • actual argumentvariabele begint met expected, _expected of Expected
  • expected of notExpected argumentvariabele begint met actual
  • actual is geen lokale variabele

Beschrijving van regel

MSTestAssert.AreEqual, Assert.AreNotEqualAssert.AreSame en Assert.AreNotSame verwacht dat het eerste argument de verwachte/onverwachte waarde is en het tweede argument de werkelijke waarde.

Als u de verwachte waarde en de werkelijke waarde in de verkeerde volgorde hebt, verandert het resultaat van de test niet (slaagt/mislukt wanneer dit het geval is), maar bevat de assertiefout misleidende informatie.

Schendingen oplossen

Zorg ervoor dat actual en expected/notExpected argumenten in de juiste volgorde worden doorgegeven.

Wanneer waarschuwingen onderdrukken

Onderdrukt geen waarschuwing van deze regel omdat dit tot misleidende uitvoer zou leiden.

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none in het configuratiebestand.

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

Voor meer informatie, zie Hoe codeanalysewaarschuwingen te onderdrukken.