Bagikan melalui


MSTEST0040: Jangan gunakan 'assert' di dalam konteks 'async void'

Harta benda Nilai
ID Aturan MSTEST0040
Judul Jangan menegaskan di dalam konteks 'kekosongan asinkron'
Kategori Penggunaan
perbaikan rusak atau tidak rusak Tidak terputus
Diaktifkan secara default Ya
tingkat keparahan default Peringatan
Diperkenalkan dalam versi 3.8.0
Apakah ada perbaikan kode Tidak

Sebab

Penggunaan metode pernyataan apa pun dalam metode async void, fungsi lokal, atau lambda.

Deskripsi aturan

Pengecualian yang dilemparkan dalam konteks async void tidak ditangani. Pernyataan yang gagal dalam metode async void akan ditelan dan tidak akan merusak proses saat menggunakan VSTest di bawah .NET Framework. Di bawah .NET, pernyataan yang gagal dalam metode async void mungkin merusak proses saat menggunakan Microsoft.Testing.Platform atau VSTest. Dalam kasus di mana ada SynchronizationContext kustom yang menangkap pengecualian, pernyataan yang gagal mungkin ditelan secara diam-diam.

Cara memperbaiki pelanggaran

Refaktor kode untuk tidak menggunakan pernyataan dalam async void.

Kapan harus menekan peringatan

Jangan mengabaikan peringatan dari aturan ini.