Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NUnit次线程异常_C#_Multithreading_Nunit - Fatal编程技术网

C# 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...

我正在测试启动辅助线程的代码。这个线程有时会抛出异常。我想写一个测试,如果没有正确处理异常,它将失败

我已经准备好了测试,我在NUnit看到的是:

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);
    }
};