Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Proprietà | Value |
|---|---|
| ID regola | MSTEST0068 |
| Titolo | Usare Assert anziché CollectionAssert |
| Categoria | Utilizzo |
| La modifica è dirompente o non dirompente | Non-breaking |
| Abilitato per impostazione predefinita | Sì |
| Gravità predefinita | Informazioni |
| introdotta nella versione | 4.3.0 |
| È presente una correzione del codice | Sì |
Annotazioni
Questa regola è disponibile a partire da MSTest 4.3.
Cause
Un metodo di test utilizza metodi CollectionAssert invece di metodi equivalenti Assert.
Descrizione regola
La maggior parte dei CollectionAssert metodi ha controparti equivalenti in Assert che forniscono la stessa funzionalità. Preferisce i Assert metodi per coerenza, migliore leggibilità, individuabilità migliorata e allineamento con il comportamento in tutti i framework di test.
I metodi seguenti CollectionAssert hanno metodi equivalenti Assert :
-
CollectionAssert.AreEqual(a, b)→Assert.AreSequenceEqual(a, b) -
CollectionAssert.AreNotEqual(a, b)→Assert.AreNotSequenceEqual(a, b) -
CollectionAssert.AreEquivalent(a, b)→Assert.AreSequenceEqual(a, b, SequenceOrder.InAnyOrder) -
CollectionAssert.AreNotEquivalent(a, b)→Assert.AreNotSequenceEqual(a, b, SequenceOrder.InAnyOrder) -
CollectionAssert.AllItemsAreNotNull(a)→Assert.AreAllNotNull(a) -
CollectionAssert.AllItemsAreUnique(a)→Assert.AreAllDistinct(a) -
CollectionAssert.AllItemsAreInstancesOfType(collection, typeof(T))→Assert.AreAllOfType<T>(collection) -
CollectionAssert.Contains(collection, value)→Assert.Contains(value, collection) -
CollectionAssert.DoesNotContain(collection, value)→Assert.DoesNotContain(value, collection)
Avvertimento
Quando si esegue la migrazione da CollectionAssert a Assert, prestare attenzione alla modifica nell'ordine dei parametri per Contains, DoesNotContaine AllItemsAreInstancesOfType. In Assertil valore previsto è sempre il primo parametro.
Gli overload di AreEqual/AreNotEqual che accettano un oggetto IComparer vengono ignorati perché Assert.AreSequenceEqual si aspetta un oggetto IEqualityComparer<T> (semantica diversa). Anche gli overload di AreEquivalent/AreNotEquivalent che accettano un IEqualityComparer<T> vengono ignorati.
IsSubsetOf
/
IsNotSubsetOf non hanno un equivalente diretto Assert oggi e non sono gestiti.
Come correggere le violazioni
Utilizzare l'utilità di correzione del codice fornita per sostituire automaticamente le chiamate ai metodi CollectionAssert con i corrispondenti metodi Assert. È anche possibile sostituire manualmente le chiamate al metodo, se necessario.
Quando eliminare gli avvisi
Non eliminare gli avvisi da questa regola. I Assert metodi offrono la stessa funzionalità con coerenza migliore.
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 MSTEST0068
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0068
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.MSTEST0068.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.