MSTEST0025: Usare "Assert.Fail" invece di un'asserzione con esito sempre negativo
Proprietà | valore |
---|---|
ID regola | MSTEST0025 |
Title | Usare "Assert.Fail" invece di un'asserzione con esito sempre negativo |
Categoria | Progettazione |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitata per impostazione predefinita | Sì |
Gravità predefinita | Info |
Introdotto nella versione | 3.4.0 |
È presente una correzione del codice | Sì |
Causa
Questa regola genera una diagnostica quando una chiamata a un'asserzione produce una condizione sempre falsa.
Descrizione regola
Usando Assert.Fail
su una chiamata a un'asserzione con esito sempre negativo, si genera un intento più chiaro e una documentazione migliore per il codice.
Quando si trova un'asserzione con esito sempre negativo (ad esempio Assert.IsTrue(false)
), non tutti i lettori del codice potrebbero capire immediatamente il motivo per cui l'asserzione sia lì o quale condizione stia cercando di controllare. Questo può portare a confusione e tempo perso per gli sviluppatori che si imbattono nel codice successivamente.
D'altra parte, l'utilizzo di Assert.Fail
consente di fornire un messaggio di errore personalizzato, che spieghi con chiarezza il motivo per cui l'asserzione ha esito negativo e a quale condizione o scenario specifico si sta riferendo. Questo messaggio funge da documentazione per l'intento dietro l'asserzione, consentendo ad altri sviluppatori di comprendere lo scopo dell'asserzione senza dover approfondire il codice.
Nel complesso, l'utilizzo di Assert.Fail
promuove chiarezza, documentazione e manutenibilità nella codebase, diventando così una scelta migliore rispetto a un'asserzione con esito sempre negativo.
Come correggere le violazioni
Assicurarsi che le chiamate a Assert.IsTrue
, Assert.IsFalse
, Assert.AreEqual
, Assert.AreNotEqual
, Assert.IsNull
o Assert.IsNotNull
non generino condizioni con esito sempre negativo.
Quando eliminare gli avvisi
Non si consiglia di eliminare gli avvisi da questa regola.
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 MSTEST0025
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0025
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.MSTEST0025.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.