MSTEST0040: Не выполняйте утверждения внутри контекстов 'async void'
Свойство | Ценность |
---|---|
идентификатор правила | MSTEST0040 |
Заголовок | Не выполняйте утверждения в контекстах 'async void' |
категория | Употребление |
исправление является критическим или неразрывным | Неразрывная |
включен по умолчанию | Да |
Уровень серьезности по умолчанию | Предупреждение |
представлено в версии | 3.8.0 |
Есть ли исправление кода | Нет |
Причина
Использование любого метода утверждения в методе async void
, локальной функции или лямбда-выражении.
Описание правила
Исключения, возникающие в контексте async void
, остаются необработанными. Неудачное утверждение в методе async void
будет проглочено и не приведет к сбою процесса при использовании VSTest в .NET Framework. При использовании Microsoft.Testing.Platform или VSTest в .NET сбой утверждения в методе async void
может привести к аварийному завершению процесса. В случаях, когда присутствует пользовательская SynchronizationContext
, которая перехватывает исключение, неудачное утверждение может быть незаметно проглочено.
Устранение нарушений
Переделайте код, чтобы не использовать ассерции в async void
.
Когда следует подавлять предупреждения
Не подавляйте предупреждение, вызванное этим правилом.