Partager 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 un correctif 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.