"마지막 기회 예외 처리"에서 발견 된 코드를 다루기 위해 단위 테스트를 작성하려고합니다.마지막 기회 예외 처리 테스트
내가 이벤트의 이벤트 핸들러에 대해 이야기하고 마지막 기회 예외 처리 참조 :
Application.ThreadException AppDomain.CurrentDomain.UnhandledException
더 이하 나는 로그를 자세히 생산되고 있는지 확인하고 예외에 의해 생성 된 정보
[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");
}
예외 처리기는 "설치된"때 바로 이전에 주어진 이벤트에 핸들러를 추가하는 싱글은 다음과 같습니다에 내 테스트는 비슷합니다. 이상한 점은 일관된 결과가 없다는 것입니다. 깨지기와 디버깅은 예외와 ExceptionHandler 사이에 들어가기 때문에 옵션으로 보이지 않습니다.
코드 전체에 여러 개의 "Console.WriteLine()"문을 사용하여 코드가 실패한 곳을 확인하지만 일관성이 없습니다. 나는 그것이 스레드를 죽이는 프레임 워크 또는 가능한 일종의 가비지 콜렉션과 관련이 있다고 생각한다.
누구나 이런 코드를 테스트 해 본 경험이 있습니까? 아니면 내가 이런 종류의 행동을하는 이유에 대한 통찰력이 있습니까?
저는 NUnit 2.4를 사용하고 있으며 ReSharper를 사용하여 IDE에서 실행 중입니다.
감사합니다. 최대한 빨리 시도하겠습니다. –