Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| Egenskap | Värde |
|---|---|
| Regel-ID | MSTEST0037 |
| rubrik | Använd rätt "Assert"-metoder |
| Kategori | Användning |
| Korrigeringen är antingen brytande eller icke-brytande | Odelbar |
| Aktiverad som standard | Ja |
| Standard allvarlighetsgrad | Varning som börjar med 4.0.0, Info före |
| introducerades i version | 3.7.0 |
| Finns det en kodkorrigering | Ja |
Orsak
Användningen av Assert metoder på ett visst sätt när det finns ett bättre alternativ.
Regelbeskrivning
Det finns flera fall där du får den här varningen:
Användning av
Assert.IsTrue(<expression> == null)(med alla kombinationer, till exempelIsFalse,!= null,is nullelleris not null).Att använda
Assert.IsNull(<expression>)ellerAssert.IsNotNull(<expression>)är ett bättre alternativ.Användning av
Assert.IsTrue(<expression1> == <expression2>)(med alla kombinationer, till exempelIsFalseeller!=).Att använda
Assert.AreEqual(<expression1>, <expression2>)ellerAssert.AreNotEqual(<expression1>, <expression2>)är ett bättre alternativ.Användning av
Assert.AreEqual(true, <expression>)ellerAssert.AreEqual(false, <expression>).Att använda
Assert.IsTrue(<expression>)ellerAssert.IsFalse(<expression>)är ett bättre alternativ.Användning av
Assert.AreEqual(null, <expression>)ellerAssert.AreNotEqual(null, <expression>).Att använda
Assert.IsNull(<expression>)ellerAssert.IsNotNull<expression>är ett bättre alternativ.
I många fall ger de bättre alternativen bättre meddelanden när de misslyckas och är också lättare att läsa.
Så här åtgärdar du överträdelser
Använd den bättre alternativa metoden.
När du ska ignorera varningar
Om påståendet är avsett att verifiera beteendet för en användardefinierad operator kan och bör du undertrycka varningen.
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 MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037
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.MSTEST0037.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.