Condividi tramite


MSTEST0017: gli argomenti di asserzione devono essere passati nell'ordine corretto

Proprietà valore
ID regola MSTEST0017
Title Gli argomenti di asserzione devono essere passati nell'ordine corretto
Categoria Utilizzo
La correzione causa un'interruzione o meno Non causa un'interruzione
Abilitata per impostazione predefinita
Gravità predefinita Info
Introdotto nella versione 3.4.0
È presente una correzione del codice

Causa

Questa regola genera un problema quando le chiamate a Assert.AreEqual, Assert.AreNotEqual, Assert.AreSame o Assert.AreNotSame seguono uno o più dei modelli seguenti:

  • actual argument è un valore costante o letterale
  • actual la variabile argument inizia con expected, _expected o Expected
  • expected o notExpected la variabile argument inizia con actual
  • actual non è una variabile locale

Descrizione regola

MSTest Assert.AreEqual, Assert.AreNotEqualAssert.AreSame e Assert.AreNotSame si prevede che il primo argomento sia il valore previsto/imprevisto e il secondo argomento sia il valore effettivo.

La presenza del valore previsto e del valore effettivo nell'ordine errato non altererà il risultato del test (ha esito positivo/negativo quando dovrebbe), ma l'errore di asserzione conterrà informazioni fuorvianti.

Come correggere le violazioni

Assicurarsi che gli argument actual e expected/notExpected vengano passati nell'ordine corretto.

Quando eliminare gli avvisi

Non eliminare un avviso da questa regola perché questo comporterebbe l'output fuorviante.

Eliminare un avviso

Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none nel file di configurazione .

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.