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.