Compartilhar via


MSTEST0040: não faça assert dentro de contextos 'async void'

Propriedade Valor
ID da regra MSTEST0040
Título Não faça assert dentro de contextos "async void"
Categoria Uso
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão Sim
Gravidade padrão Aviso
Introduzido na versão 3.8.0
Há uma correção de código Não

Causa

O uso de qualquer método de asserção em um método async void, função local ou lambda.

Descrição da regra

Exceções lançadas em um contexto async void não são tratadas. Uma asserção com falha em um método async void será absorvida e não falhará no processo ao usar o VSTest no .NET Framework. No .NET, uma asserção com falha em um método async void pode falhar no processo ao usar o Microsoft.Testing.Platform ou VSTest. Nos casos em que há SynchronizationContext personalizado está presente e captura a exceção, a asserção que falha pode ser ingerida silenciosamente.

Como corrigir violações

Refatorar o código para não usar asserções no async void.

Quando suprimir avisos

Não suprima um aviso nessa regra.