Comparteix a través de


MSTEST0017: los argumentos de aserción deben pasarse en el orden correcto

Propiedad Value
Identificador de la regla MSTEST0017
Título Los argumentos de aserción deben pasarse en el orden correcto
Categoría Uso
La corrección es problemática o no problemática Poco problemático
Habilitado de forma predeterminada
Gravedad predeterminada Información
Introducido en la versión 3.4.0
Hay una corrección de código

Causa

Esta regla genera un problema cuando las llamadas a Assert.AreEqual, Assert.AreNotEqual, Assert.AreSame o Assert.AreNotSame siguen uno o varios de los patrones siguientes:

  • El argumento actual es un valor constante o literal
  • La variable del argumento actual comienza por expected, _expected o Expected
  • La variable de argumento expected y notExpected comienza por actual
  • actual no es una variable local

Descripción de la regla

MSTest Assert.AreEqual, Assert.AreNotEqual, Assert.AreSame y Assert.AreNotSame esperan que el primer argumento sea el valor esperado o inesperado y el segundo argumento sea el valor real.

Tener el valor esperado y el valor real en el orden incorrecto no modificará el resultado de la prueba (se realiza correctamente o produce un error cuando debe), pero el error de aserción contendrá información engañosa.

Cómo corregir infracciones

Asegúrese de que los argumentos actual y expected/notExpected se pasan en el orden correcto.

Cuándo suprimir las advertencias

No suprima una advertencia de esta regla, ya que daría lugar a una salida engañosa.

Supresión de una advertencia

Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

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

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none del archivo de configuración.

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

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.