Delen via


MSTEST0037: gebruik de juiste 'Assert'-methoden

Eigendom Waarde
Regel ID MSTEST0037
titel De juiste 'Assert'-methoden gebruiken
categorie Gebruik
Fix veroorzaakt brekende of niet-brekende Niet-brekend
standaard ingeschakeld Ja
standaard ernst Informatie
geïntroduceerd in versie 3.7.0
Is er een codeoplossing Ja

Oorzaak

Het gebruik van Assert methoden op een specifieke manier wanneer er een beter alternatief is.

Beschrijving van regel

Er zijn meerdere gevallen waarin u deze waarschuwing krijgt:

  • Het gebruik van Assert.IsTrue(<expression> == null) (met alle combinaties, zoals IsFalse, != null, is nullof is not null).

    Het gebruik van Assert.IsNull(<expression>) of Assert.IsNotNull(<expression>) is een beter alternatief.

  • Het gebruik van Assert.IsTrue(<expression1> == <expression2>) (met alle combinaties, zoals IsFalse of !=).

    Het gebruik van Assert.AreEqual(<expression1>, <expression2>) of Assert.AreNotEqual(<expression1>, <expression2>) is een beter alternatief.

  • Het gebruik van Assert.AreEqual(true, <expression>) of Assert.AreEqual(false, <expression>).

    Het gebruik van Assert.IsTrue(<expression>) of Assert.IsFalse(<expression>) is een beter alternatief.

  • Het gebruik van Assert.AreEqual(null, <expression>) of Assert.AreNotEqual(null, <expression>).

    Het gebruik van Assert.IsNull(<expression>) of Assert.IsNotNull<expression> is een beter alternatief.

In veel gevallen bieden de betere alternatieven betere berichten wanneer ze mislukken en zijn ze ook gemakkelijker te lezen.

Hoe u schendingen kunt verhelpen

Gebruik de betere alternatieve methode.

Wanneer waarschuwingen onderdrukken

Als de assert is bedoeld om het gedrag van een door de gebruiker gedefinieerde operator te controleren, kunt en moet u de waarschuwing onderdrukken.

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 MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037

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.MSTEST0037.severity = none

Zie Hoe codeanalysewaarschuwingen te onderdrukkenvoor meer informatie.