Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
| Propiedad | Value |
|---|---|
| Identificador de la regla | MSTEST0068 |
| Título | Usar Assert en lugar de CollectionAssert |
| Category | Usage |
| La corrección es problemática o no problemática | Non-breaking |
| Habilitado de forma predeterminada | Sí |
| Gravedad predeterminada | Información |
| introducido en la versión | 4.3.0 |
| ¿Hay una corrección de código? | Sí |
Nota:
Esta regla está disponible a partir de MSTest 4.3.
Causa
Un método de prueba usa CollectionAssert métodos en lugar de métodos equivalentes Assert .
Descripción de la regla
La mayoría CollectionAssert de los métodos tienen equivalentes equivalentes en Assert que proporcionan la misma funcionalidad. Prefiere los métodos Assert por su coherencia, mayor legibilidad, mayor facilidad para encontrarlos y alineación con el comportamiento de todos los frameworks de pruebas.
Los métodos siguientes CollectionAssert tienen métodos equivalentes 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)
Advertencia
Al migrar de CollectionAssert a Assert, ten cuidado con el cambio en el orden de los parámetros de Contains, DoesNotContain y AllItemsAreInstancesOfType. En Assert, el valor esperado siempre es el primer parámetro.
Las sobrecargas de AreEqual/AreNotEqual que aceptan un(a) IComparer se omiten porque Assert.AreSequenceEqual espera un(a) IEqualityComparer<T> (semántica diferente). También se omiten las sobrecargas de AreEquivalent/AreNotEquivalent que aceptan un IEqualityComparer<T>.
IsSubsetOf
/
IsNotSubsetOf no tienen ningún equivalente directo Assert en la actualidad y no se admiten.
Cómo corregir infracciones
Use el corrector de código proporcionado para reemplazar automáticamente las llamadas al método CollectionAssert por sus métodos equivalentes Assert. También puede reemplazar manualmente las llamadas al método si es necesario.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla. Los Assert métodos proporcionan la misma funcionalidad con una mejor coherencia.
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 MSTEST0068
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0068
Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad a none en el archivo de configuración.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0068.severity = none
Para obtener más información, consulte Cómo suprimir advertencias de análisis de código.