如何在Xunit.net中捕获继承的异常
本文关键字:继承 异常 Xunit net | 更新日期: 2023-09-27 18:05:25
所以我有一个自定义异常称为FoobarException
,并从我创建了一个新的异常FooException : FoobarException
下面抛出一个FooException
Assert.Throws<FoobarException>(() => a.DoFoo(123));
然而断言失败,因为它预计会抛出FooException
。是不是一个"FooException"也是一个foobareexception ?
不,不是以XUnit检查它的方式。要自己查看,请看下面的代码:
XUnit Assert Exceptions
如果您想捕获任何异常或派生类型,那么您需要使用ThrowsAny
重载。
Assert.ThrowsAny<Foobar>(() => a.DoFoo(123));
只是为了"最佳实践",当创建异常时,总是以单词"exception"结束异常的名称。上面的异常变成了FoobarException
,这就清楚了这个类的用途。