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 parexpected
,_expected
ouExpected
- La variable d’argument
expected
ounotExpected
commence paractual
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.