Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
| Propriété | Value |
|---|---|
| Identificateur de la règle | MSTEST0068 |
| Titre | Utiliser Assert au lieu de CollectionAssert |
| Catégorie | Usage |
| Le correctif a un effet disruptif ou non disruptif | Non-breaking |
| Activé par défaut | Oui |
| Sévérité par défaut | Informations |
| Introduit dans la version | 4.3.0 |
| Existe-t-il une correction de code | Oui |
Note
Cette règle est disponible à partir de MSTest 4.3.
Cause
Une méthode de test utilise des CollectionAssert méthodes plutôt que des méthodes équivalentes Assert .
Description de la règle
La plupart des méthodes CollectionAssert ont leurs équivalents dans Assert, qui offrent la même fonctionnalité. Préférez les méthodes Assert pour plus de cohérence, une meilleure lisibilité, une meilleure découvrabilité et un alignement avec le comportement de tous les frameworks de test.
Les méthodes suivantes CollectionAssert ont des méthodes équivalentes Assert :
-
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)
Warning
Lors de la migration vers CollectionAssertAssert, soyez prudent sur la modification dans l’ordre des paramètres pour Contains, DoesNotContainet AllItemsAreInstancesOfType. Dans Assert, la valeur attendue est toujours le premier paramètre.
Les surcharges de AreEqual/AreNotEqual qui prennent un IComparer sont ignorées, car Assert.AreSequenceEqual attend un IEqualityComparer<T> (la sémantique est différente). Les surcharges de AreEquivalent/AreNotEquivalent qui prennent un IEqualityComparer<T> sont également ignorées.
IsSubsetOf
/
IsNotSubsetOf n’ont pas d’équivalent direct Assert aujourd’hui et ne sont pas gérés.
Comment corriger les violations
Utilisez le correcteur de code fourni pour remplacer automatiquement les appels aux méthodes CollectionAssert par leurs équivalents Assert. Vous pouvez également remplacer manuellement les appels de méthode si nécessaire.
Quand supprimer les avertissements
Ne supprimez pas les avertissements de cette règle. Les Assert méthodes fournissent les mêmes fonctionnalités avec une meilleure cohérence.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable MSTEST0068
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0068
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0068.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements d’analyse du code.