Partager via


MSTEST0040 : Pas d’assertions dans les contextes « async void »

Property Valeur
Identificateur de la règle MSTEST0040
Titre Pas d’assertions dans les contextes « async void »
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture
Activé par défaut Oui
Sévérité par défaut Warning
Introduit dans la version 3.8.0
Existe-t-il une correction de code Non

Cause

Utilisation de n’importe quelle méthode d’assertion dans une méthode async void, fonction locale ou lambda.

Description de la règle

Les exceptions qui sont levées dans un contexte async void ne sont pas prises en charge. Une assertion défaillante dans une méthode async void est avalée et ne bloque pas le processus lors de l’utilisation de VSTest sous .NET Framework. Sous .NET, une assertion défaillante dans une méthode async void peut bloquer le processus lors de l’utilisation de Microsoft.Testing.Platform ou VSTest. Dans les cas où une SynchronizationContext personnalisée est présente pour intercepter l’exception, l’assertion défaillante risque d’être avalée discrètement.

Comment corriger les violations

Refactorisez le code pour ne pas utiliser d’assertions dans async void.

Quand supprimer les avertissements

Ne supprimez pas un avertissement issu de cette règle.