Dela via


MSTEST0037: Använd rätt "Assert"-metoder

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 Info
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 exempel IsFalse, != null, is nulleller is not null).

    Att använda Assert.IsNull(<expression>) eller Assert.IsNotNull(<expression>) är ett bättre alternativ.

  • Användning av Assert.IsTrue(<expression1> == <expression2>) (med alla kombinationer, till exempel IsFalse eller !=).

    Att använda Assert.AreEqual(<expression1>, <expression2>) eller Assert.AreNotEqual(<expression1>, <expression2>) är ett bättre alternativ.

  • Användning av Assert.AreEqual(true, <expression>) eller Assert.AreEqual(false, <expression>).

    Att använda Assert.IsTrue(<expression>) eller Assert.IsFalse(<expression>) är ett bättre alternativ.

  • Användning av Assert.AreEqual(null, <expression>) eller Assert.AreNotEqual(null, <expression>).

    Att använda Assert.IsNull(<expression>) eller Assert.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.