У меня есть модульный тест, который намеренно генерирует необработанное исключение. Я подключил обработчик для необработанных исключений (которые я хотел бы проверить), используя:
AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;
Мой тест выглядит следующим образом:
LogClient client = new LogClient(); // The handler is wired up in here
Trace.TraceInformation( "About to cause an unhandled divide-by-zero exception." );
for ( int i = 10; i > -10; --i )
{
int j = 100 / i;
Console.WriteLine( "i={0}, j={1}", i, j );
}
Assert.NotNull( client.UnhandledException );
Конечно, генерируется исключение, и NUnit перехватывает его и не проходит тест. Я попытался добавить
[ExpectedException(typeof(DivideByZeroException))]
и тест «проходит», но мой обработчик никогда не вызывается, а Assert.NotNull
никогда не выполняется. Мне интересно, можно ли написать модульный тест для обработчика необработанных исключений. Любые указатели приветствуются.
Я использую NUnit 2.5.7 с VS 2010.