Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| Property | Valor |
|---|---|
| ID da regra | MSTEST0068 |
| Título | Use Assert em vez de CollectionAssert |
| Categoria | Uso |
| Correção interruptiva ou sem interrupção | Non-breaking |
| Habilitado por padrão | Yes |
| Severidade padrão | Informações |
| introduzido na versão | 4.3.0 |
| Há uma correção de código | Yes |
Note
Essa regra está disponível a partir do MSTest 4.3.
Cause
Um método de teste usa métodos CollectionAssert em vez de métodos equivalentes Assert .
Descrição da regra
A maioria dos CollectionAssert métodos tem equivalentes Assert que fornecem a mesma funcionalidade. Prefira os Assert métodos para consistência, melhor legibilidade, melhor capacidade de descoberta e alinhamento com o comportamento em todas as estruturas de teste.
Os métodos CollectionAssert a seguir têm 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)
Warning
Ao migrar de CollectionAssert para Assert, tenha cuidado com a alteração na ordem de parâmetro para Contains, DoesNotContaine AllItemsAreInstancesOfType. Em Assert, o valor esperado é sempre o primeiro parâmetro.
Sobrecargas de AreEqual/AreNotEqual que recebem IComparer são ignoradas porque Assert.AreSequenceEqual espera IEqualityComparer<T> (semântica diferente). As sobrecargas de AreEquivalent/AreNotEquivalent que recebem um IEqualityComparer<T> também são ignoradas.
IsSubsetOf
/
IsNotSubsetOf não têm equivalente direto Assert hoje e não são tratados.
Como corrigir violações
Use o corretor de código fornecido para substituir automaticamente as chamadas de método CollectionAssert pelos métodos Assert equivalentes. Você também pode substituir manualmente as chamadas de método, se necessário.
Quando suprimir avisos
Não suprima avisos dessa regra. Os Assert métodos fornecem a mesma funcionalidade com melhor consistência.
Suprimir um aviso
Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar a regra e, em seguida, habilitá-la novamente.
#pragma warning disable MSTEST0068
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0068
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0068.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.