Aku digunakan untuk menggunakan ini di NUnit dan mereka benar-benar berguna. Tahu bagaimana untuk melakukan sesuatu seperti itu?
EDIT, CONTOH KODE:
bool condition = false;//would be nice not to have this
observable.Subscribe(_ =>
{
if (real test)
condition= true;//Assert.Pass()
});
StartObservable();
Assert.True(condition);//Assert.Fail()
Dokumentasi mencakup perbandingan grafik seperti ini:
Gagal
- xUnit.net alternatif:Menegaskan.Benar(palsu, "pesan")
(Itu doesn't menunjukkan Menegaskan.Lulus
, dan I've tidak pernah digunakan itu sendiri, tapi saya menduga alternatif hanya untuk kembali dari tes. Tentu saja itu doesn't membantu jika anda ingin membuangnya di bersarang metode panggilan. Saya curiga adalah bahwa hal itu's tidak sangat sering digunakan dalam NUnit, maka ketiadaan dalam grafik perbandingan.)
Alternatif untuk Menegaskan.Gagal("pesan")
yang disarankan oleh xUnit docs
xUnit.net alternatif: Menegaskan.Benar(palsu, "pesan")
memiliki kelemahan – output adalah
message
Expected: True
Actual: False
Untuk menyingkirkan
Diharapkan: Benar Sebenarnya: Palsu
don't call Menegaskan.Benar(palsu, "pesan")
membuang Xunit.Sdk.XunitException
sebagai gantinya.
Misalnya, menciptakan seorang penolong yang mirip dengan metode ini:
public static class MyAssert
{
public static void Fail(string message)
=> throw new Xunit.Sdk.XunitException(message);
}
Hanya melempar pengecualian untuk memenuhi kedua persyaratan (untuk keluar dari loop bersarang dan alternatif hilang Menegaskan.Gagal metode). Hanya masalah adalah tidak ada yang layak dasar pengecualian (misalnya TestException) untuk digunakan dalam rangka untuk menghindari peringatan tentang menggunakan dasar kelas Pengecualian, sehingga sesuatu yang lebih diarahkan seperti InvalidOperationException mungkin adalah pilihan yang baik.