C# NUnit次线程异常
我正在测试启动辅助线程的代码。这个线程有时会抛出异常。我想写一个测试,如果没有正确处理异常,它将失败 我已经准备好了测试,我在NUnit看到的是:C# NUnit次线程异常,c#,multithreading,nunit,C#,Multithreading,Nunit,我正在测试启动辅助线程的代码。这个线程有时会抛出异常。我想写一个测试,如果没有正确处理异常,它将失败 我已经准备好了测试,我在NUnit看到的是: LegacyImportWrapperTests.Import_ExceptionInImport_Ok : PassedSystem.ArgumentException: aaaaaaaaaa at Import.Legacy.Tests.Stub.ImportStub.Import() in ImportStub.cs: line 51...
LegacyImportWrapperTests.Import_ExceptionInImport_Ok : PassedSystem.ArgumentException: aaaaaaaaaa
at Import.Legacy.Tests.Stub.ImportStub.Import() in ImportStub.cs: line 51...
但测试标记为绿色。因此,NUnit知道该异常,但为什么它会将测试标记为已通过?您可以在输出中看到异常详细信息并不一定意味着NUnit知道该异常 在测试期间,我使用该事件监视类似这样的场景(假设异常未处理,我假设这里就是这种情况): 如果只想测试特定的异常,可以在事件处理程序中进行测试:
UnhandledExceptionEventHandler unhandledExceptionHandler = (s, e) =>
{
if (!exceptionWasThrown)
{
exceptionWasThrown = e.ExceptionObject.GetType() ==
typeof(PassedSystem.ArgumentException);
}
};
UnhandledExceptionEventHandler unhandledExceptionHandler = (s, e) =>
{
if (!exceptionWasThrown)
{
exceptionWasThrown = e.ExceptionObject.GetType() ==
typeof(PassedSystem.ArgumentException);
}
};