Delen via


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 voidte gebruiken.

Wanneer waarschuwingen onderdrukken

Een waarschuwing van deze regel niet onderdrukken.