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 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.
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.