共用方式為


MSTEST0040:不要在 'async void' 上下文中進行斷言

財產 價值
規則標識碼 MSTEST0040
標題 不要在『async void』上下文中使用斷言
類別 用法
修正為中斷或非中斷的狀態 不間斷
預設為啟用 是的
預設嚴重性 警告
在版本 中引進 3.8.0
是否有程式碼修正

原因

async void 方法、本機函式或 Lambda 中使用任何斷言方法。

規則描述

async void 環境中擲出的例外狀況未被處理。 在 .NET Framework 下使用 VSTest 時,async void 方法中的失敗斷言將會被忽略,並且不會造成程序當機。 在 .NET 下,async void 方法中的失敗的斷言可能會在使用 Microsoft.Testing.Platform 或 VSTest 時導致程式崩潰。 如果存在攔截例外的自定義 SynchronizationContext,失敗的斷言可能會被默默忽略。

如何修正違規

將程式代碼重構為不在 async void中使用斷言。

隱藏警告的時機

請勿忽略此規則的警告。