Delen via


MSTEST0038: Gebruik 'Assert.AreSame' of 'Assert.AreNotSame' niet met waardetypen

Eigendom Waarde
Regel-ID MSTEST0038
titel Gebruik 'Assert.AreSame' of 'Assert.AreNotSame' niet met waardetypen
Categorie Gebruik
Fix is brekend of niet-brekend Onbreekbaar
standaard ingeschakeld Ja
standaard ernst Waarschuwing
geïntroduceerd in versie 3.8.0
Bestaat er een codereparatie? Ja

Oorzaak

Het gebruik van Assert.AreSame of Assert.AreNotSame, wanneer een of beide argumenten een waardetype zijn.

Beschrijving van regel

Assert.AreSame en Assert.AreNotSame werken door de verwijzing van de gegeven expected/notExpected en werkelijke argumenten via ReferenceEqualste vergelijken. Wanneer u een waardetype doorgeeft, wordt dit daarom in het vak.

Als u AreSamegebruikt, mislukt de assert altijd. Als u AreNotSamegebruikt, zal de assertie altijd slagen.

Voor AreSamegeldt het enige geval wanneer de assert wordt doorgegeven als beide argumenten null-waardetypen zijn waarvan de waarden beide null zijn. In dit geval is het duidelijker om twee afzonderlijke Assert.IsNull aanroepen te gebruiken.

Hoe schendingen op te lossen

Gebruik Assert.AreEqual en Assert.AreNotEqual in plaats van Assert.AreSame en Assert.AreNotSame. Als het gebruik van Assert.AreSame en beide argumenten null-waardetypen zijn waarvan de waarden naar verwachting null zijn, kunnen twee afzonderlijke aanroepen Assert.IsNull beter passen dan AreEqual, afhankelijk van de intentie van de test.

Wanneer waarschuwingen onderdrukken

Een waarschuwing van deze regel niet onderdrukken. Als u deze regel negeert, resulteert dit in een assertie die altijd mislukt of altijd slaagt.