Partage via


MSTEST0017 : les arguments d’assertion doivent être transmis dans le bon ordre

Propriété Value
Identificateur de la règle MSTEST0017
Titre Les arguments d’assertion doivent être transmis dans le bon ordre
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture
Activé par défaut Oui
Gravité par défaut Infos
Introduite dans la version 3.4.0
Existe-t-il une correction de code Oui

Cause

Cette règle soulève un problème lorsque les appels à Assert.AreEqual, Assert.AreNotEqual, Assert.AreSame ou Assert.AreNotSame suivent un ou plusieurs des modèles ci-dessous :

  • L’argument actual est une valeur constante ou littérale
  • La variable d’argument actual commence par expected, _expected ou Expected
  • La variable d’argument expected ou notExpected commence par actual
  • actual n’est pas une variable locale

Description de la règle

MSTest Assert.AreEqual, Assert.AreNotEqual, Assert.AreSame et Assert.AreNotSame attendent que le premier argument soit la valeur attendue/inattendue et que le deuxième argument soit la valeur réelle.

Le fait de disposer de la valeur attendue et de la valeur réelle dans le mauvais ordre ne modifie pas le résultat du test (réussit/échoue quand il le doit), mais l’échec de l’assertion contiendra des informations trompeuses.

Comment corriger les violations

Vérifiez que les arguments actual et expected/notExpected sont passés dans l’ordre correct.

Quand supprimer les avertissements

Ne supprimez pas un avertissement de cette règle, car cela entraînerait une sortie trompeuse.

Supprimer un avertissement

Si vous souhaitez simplement supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez la règle.

#pragma warning disable MSTEST0017
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0017

Pour désactiver la règle d’un fichier, d’un dossier ou d’un projet, définissez sa gravité sur none dans le fichier de configuration .

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0017.severity = none

Pour plus d’informations, consultez Comment supprimer les avertissements d’analyse du code.