Udostępnij za pośrednictwem


MSTEST0040: Nie używaj asercji wewnątrz kontekstów "async void"

Własność Wartość
identyfikator reguły MSTEST0040
Tytuł Nie używaj asercji wewnątrz kontekstów 'async void'
Kategoria Użytkowanie
Poprawka powoduje problem lub go nie powoduje Niezgodność
włączone domyślnie Tak
domyślna ważność Ostrzeżenie
wprowadzone w wersji 3.8.0
czy istnieje poprawka kodu Nie

Przyczyna

Użycie dowolnej metody asercji w metodzie async void, funkcji lokalnej lub lambda.

Opis reguły

Wyjątki zgłaszane w kontekście async void są nieobsługiwane. Niepowodzenie asercji w metodzie async void zostanie zignorowane i nie spowoduje awarii procesu podczas korzystania z narzędzia VSTest pod .NET Framework. W przypadku platformy .NET niepowodzenie asercji w metodzie async void może spowodować awarię procesu podczas korzystania z platformy Microsoft.Testing.Platform lub VSTest. W przypadkach, gdy istnieje niestandardowy SynchronizationContext, który przechwytuje wyjątek, nieudane założenie może być niezauważalnie ignorowane.

Jak naprawić naruszenia

Refaktoryzuj kod, aby nie używać asercji w async void.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżenia z tej reguły.