"Son şans istisnası işleyicimizde" bulunan kodu kapatmak için bir birim testi yazmaya çalışıyorum.Son Şans Kural Dışı Durum İşleme Sınaması
Ben olayların olay işleyicileri bahsediyorum son şans istisna işleme atıfta:
Application.ThreadException AppDomain.CurrentDomain.UnhandledException
Az ya ben günlükleri ayrıntılarıyla üretilen geçirildiğini teyit ediyorum istisna tarafından üretilen bilgiler.
[Test]
public void TestMethod()
{
//Setup log4net ConsoleAppender here
//hooking a MemoryStream to the Console.SetOut done here
ExceptionHandler.InstallExceptionHandler();
Thread exceptionThread = new Thread(ThrowException);
Thread.Start();
//read stream here
Assert.That(streamContainsExceptionText);
}
private void ThrowException() {
throw new Exception("Unhandled Exception");
}
İstisna Handler "Yüklü" zaman sadece önceden verilen olaylara işleyicileri ekler bir tekil geçerli: Benim Test benzer. Tuhaf olan şey, tutarlı sonuçlara sahip olmamam. Ayrılma ve hata ayıklama bir seçenek olarak görünmüyor, çünkü istisna ile ExceptionHandler arasına giriyor gibi görünüyor.
Kodun başarısız olduğunu doğrulamak için kodun tamamında birkaç "Console.WriteLine()" ifadesi yerleştirdim ancak bu tutarlı değil. Bu testin, ipliği öldürme ya da muhtemelen bir çeşit çöp toplama işlemiyle ilgili bir şeye sahip olduğuna inanıyorum.
Böyle bir kod parçasını test eden herhangi biri deneyime sahip oldu mu? Yoksa bu tür davranışları neden gördüğümle ilgili bir fikrin var mı?
NUnit 2.4 kullanıyorum ve ReSharper kullanarak IDE'de çalıştırıyorum.
Teşekkürler, elimden geldiğince bunu deneyeceğim. –