Kommentar
Å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.
| Property | Value |
|---|---|
| Regel-ID | MSTEST0068 |
| Title | Använd Assert i stället för CollectionAssert |
| Kategori | Användning |
| Korrigeringen är antingen brytande eller icke-brytande | Non-breaking |
| Aktiverad som standard | Yes |
| Standard allvarlighetsgrad | Info |
| introducerades i version | 4.3.0 |
| Finns det en kodkorrigering | Yes |
Anmärkning
Den här regeln är tillgänglig från och med MSTest 4.3.
Orsak
En testmetod använder CollectionAssert metoder i stället för motsvarande Assert metoder.
Regelbeskrivning
De flesta CollectionAssert metoder har motsvarande motsvarigheter i Assert som tillhandahåller samma funktioner. Assert Föredra metoderna för konsekvens, bättre läsbarhet, förbättrad identifiering och anpassning till beteende i alla testramverk.
Följande CollectionAssert metoder har motsvarande Assert metoder:
-
CollectionAssert.AreEqual(a, b)→Assert.AreSequenceEqual(a, b) -
CollectionAssert.AreNotEqual(a, b)→Assert.AreNotSequenceEqual(a, b) -
CollectionAssert.AreEquivalent(a, b)→Assert.AreSequenceEqual(a, b, SequenceOrder.InAnyOrder) -
CollectionAssert.AreNotEquivalent(a, b)→Assert.AreNotSequenceEqual(a, b, SequenceOrder.InAnyOrder) -
CollectionAssert.AllItemsAreNotNull(a)→Assert.AreAllNotNull(a) -
CollectionAssert.AllItemsAreUnique(a)→Assert.AreAllDistinct(a) -
CollectionAssert.AllItemsAreInstancesOfType(collection, typeof(T))→Assert.AreAllOfType<T>(collection) -
CollectionAssert.Contains(collection, value)→Assert.Contains(value, collection) -
CollectionAssert.DoesNotContain(collection, value)→Assert.DoesNotContain(value, collection)
Varning
När du migrerar från CollectionAssert till Assertbör du vara försiktig med ändringen i parameterordningen för Contains, DoesNotContainoch AllItemsAreInstancesOfType. I Assertär det förväntade värdet alltid den första parametern.
Överlagrade varianter av AreEqual/AreNotEqual som tar ett argument av typen IComparer utelämnas eftersom Assert.AreSequenceEqual förväntar sig en IEqualityComparer<T> (annan semantik). Överlagrade versioner av AreEquivalent/AreNotEquivalent som tar en IEqualityComparer<T> utelämnas också.
IsSubsetOf
/
IsNotSubsetOf har ingen direkt Assert motsvarighet idag och hanteras inte.
Så här åtgärdar du överträdelser
Använd den angivna kodkorrigeringen för att automatiskt ersätta CollectionAssert metodanrop med motsvarande Assert metoder. Du kan också ersätta metodanropen manuellt om det behövs.
När du ska ignorera varningar
Ignorera inte varningar från den här regeln. Metoderna Assert ger samma funktionalitet med bättre enhetlighet.
Undertryck 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 MSTEST0068
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0068
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.MSTEST0068.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.