Compartilhar via


MSTEST0037: usar os métodos "Assert" adequados

Propriedade Valor
ID da regra MSTEST0037
Título Use métodos "Assert" adequados
Categoria Uso
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão Sim
Gravidade padrão Informações
Introduzido na versão 3.7.0
Há uma correção de código Sim

Causa

O uso de métodos Assert de uma maneira específica quando há uma alternativa melhor.

Descrição da regra

Há vários casos em que você recebe este aviso:

  • O uso de Assert.IsTrue(<expression> == null) (com todas as combinações, como IsFalse, != null, is null ou is not null).

    Usar Assert.IsNull(<expression>) ou Assert.IsNotNull(<expression>) é uma alternativa melhor.

  • O uso de Assert.IsTrue(<expression1> == <expression2>) (com todas as combinações, como IsFalse ou !=).

    Usar Assert.AreEqual(<expression1>, <expression2>) ou Assert.AreNotEqual(<expression1>, <expression2>) é uma alternativa melhor.

  • O uso de Assert.AreEqual(true, <expression>) ou Assert.AreEqual(false, <expression>).

    Usar Assert.IsTrue(<expression>) ou Assert.IsFalse(<expression>) é uma alternativa melhor.

  • O uso de Assert.AreEqual(null, <expression>) ou Assert.AreNotEqual(null, <expression>).

    Usar Assert.IsNull(<expression>) ou Assert.IsNotNull<expression> é uma alternativa melhor.

Em muitos casos, as melhores alternativas fornecem mensagens melhores quando falham e também são mais fáceis de ler.

Como corrigir violações

Use o melhor método alternativo.

Quando suprimir avisos

Se a declaração tiver como objetivo verificar o comportamento de um operador definido pelo usuário, você pode e deve suprimir o aviso.

Suprimir um aviso

Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, habilitar novamente a regra.

#pragma warning disable MSTEST0037
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0037

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.MSTEST0037.severity = none

Para obter mais informações, confira Como suprimir avisos de análise de código.