MSTEST0040: Niet asserteren in 'async void'-contexten
Eigenschap | Waarde |
---|---|
Regel-ID | MSTEST0040 |
titel | Voer geen assertie uit binnen 'async void' contexten |
categorie | Gebruik |
De oplossing veroorzaakt brekende of niet-brekende problemen | Onbreekbaar |
standaard ingeschakeld | Ja |
standaardernst | Waarschuwing |
geïntroduceerd in versie | 3.8.0 |
Is er een codeoplossing | Nee |
Oorzaak
Het gebruik van een assertiemethode in een async void
methode, lokale functie of lambda.
Beschrijving van regel
Uitzonderingen die in een async void
context worden geworpen, worden niet afgehandeld. Een mislukte bewering in een async void
-methode wordt ingeslikt en crasht het proces niet bij het gebruik van VSTest onder .NET Framework. Onder .NET kan een mislukte bewering in een async void
-methode het proces laten vastlopen bij het gebruik van Microsoft.Testing.Platform of VSTest. In gevallen waarin een aangepaste SynchronizationContext
aanwezig is die de uitzondering ondervangt, kan de mislukte bewering ongemerkt worden ingeslikt.
Hoe schendingen te verhelpen
Herstructureer de code om geen asserties in async void
te gebruiken.
Wanneer waarschuwingen onderdrukken
Een waarschuwing van deze regel niet onderdrukken.