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.