MSTEST0025: Använd "Assert.Fail" i stället för en alltid misslyckad kontroll
Property | Värde |
---|---|
Regel-ID | MSTEST0025 |
Title | Använd "Assert.Fail" i stället för en alltid misslyckad kontroll |
Kategori | Designa |
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 en diagnostik när ett anrop till ett intyg genererar ett alltid falskt villkor.
Regelbeskrivning
Användning via Assert.Fail
ett alltid misslyckat kontrollanrop ger tydligare avsikt och bättre dokumentation för koden.
När du stöter på ett påstående som alltid misslyckas (till exempel Assert.IsTrue(false)
), är det kanske inte omedelbart uppenbart för någon som läser koden varför försäkran finns där eller vilket villkor den försöker kontrollera. Detta kan leda till förvirring och bortkastad tid för utvecklare som stöter på koden senare.
Med hjälp av Assert.Fail
kan du däremot ange ett anpassat felmeddelande, vilket gör det tydligt varför försäkran misslyckas och vilket specifikt villkor eller scenario det behandlar. Det här meddelandet fungerar som dokumentation för avsikten bakom försäkran, vilket hjälper andra utvecklare att förstå syftet med försäkran utan att behöva fördjupa sig i koden.
På det hela taget främjar användningen tydlighet, dokumentation och underhåll i din kodbas, vilket gör det till ett bättre val jämfört med Assert.Fail
ett alltid misslyckat kontrollanrop.
Så här åtgärdar du överträdelser
Se till att anrop till Assert.IsTrue
, Assert.IsFalse
, Assert.AreEqual
, Assert.AreNotEqual
Assert.IsNull
eller Assert.IsNotNull
inte genererar villkor som alltid misslyckas.
När du ska ignorera varningar
Vi rekommenderar inte att du utelämnar varningar från den här regeln.
Ignorera 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 MSTEST0025
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0025
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.MSTEST0025.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.