Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
| Property | Valor |
|---|---|
| ID da regra | MSTEST0068 |
| Title | Use Assert em vez de CollectionAssert |
| Category | Utilização |
| A correção é invasiva ou não invasiva | Inquebrável |
| Ativado por padrão | Yes |
| Severidade padrão | Informações |
| Introduzido na versão | 4.3.0 |
| Existe uma correção de código | Yes |
Note
Esta regra está disponível a partir do MSTest 4.3.
Motivo
Um método de ensaio utiliza CollectionAssert métodos em vez de métodos equivalentes Assert .
Descrição da regra
A maior parte dos métodos CollectionAssert tem equivalentes em Assert que oferecem a mesma funcionalidade. Prefiro métodos Assert para consistência, melhor legibilidade, melhor descoberta e alinhamento com o comportamento em todos os frameworks de teste.
Os seguintes CollectionAssert métodos 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 da ordem dos parâmetros para Contains, DoesNotContain, e AllItemsAreInstancesOfType. Em Assert, o valor esperado é sempre o primeiro parâmetro.
As sobrecargas de AreEqual/AreNotEqual que aceitam um IComparer são ignoradas porque Assert.AreSequenceEqual espera um IEqualityComparer<T> (semântica diferente). As sobrecargas de AreEquivalent/AreNotEquivalent que aceitam 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
Utilize o corretor de código fornecido para substituir automaticamente as chamadas de método CollectionAssert pelas chamadas aos métodos equivalentes Assert. Também podes substituir manualmente as chamadas de método, se necessário.
Quando suprimir avisos
Não suprima avisos desta regra. Os Assert métodos proporcionam a mesma funcionalidade com melhor consistência.
Suprimir um aviso
Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.
#pragma warning disable MSTEST0068
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0068
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade 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.