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.