如何在Xunit.net中捕获继承的异常

时间:2015-07-28 20:03:36

标签: c# xunit.net

所以我有一个名为FoobarException的自定义异常,从中我创建了一个新的异常FooException : FoobarException以下引发了一个FooException

Assert.Throws<FoobarException>(() => a.DoFoo(123));

然而断言失败是因为它期望抛出FooException。不是&#34; FooException&#34;还有一个FoobarException?

1 个答案:

答案 0 :(得分:5)

不,不是XUnit检查它的方式。要亲眼看看,请查看代码:

XUnit Assert Exceptions

如果要捕获任何异常或派生类型,则需要使用ThrowsAny重载。

Assert.ThrowsAny<Foobar>(() => a.DoFoo(123));

只是出于“最佳实践”的问题,在创建异常时,总是以“异常”一词结束异常的名称。您上面的例外变为FoobarException,这清楚地说明了该类的用途。这是C#编码最佳实践,是非常合理的建议。