所以我有一个自定义的异常调用FoobarException,从中我创建了一个新的异常FooException : FoobarException 以下引发了一个FooException
Assert.Throws<FoobarException>(() => a.DoFoo(123));
Run Code Online (Sandbox Code Playgroud)
然而,这种说法是失败的,因为它期待FooException被抛出.是不是"FooException"也是FoobarException?
不,不是XUnit检查它的方式.要亲眼看看,请查看代码:
如果要捕获任何异常或派生类型,则需要使用ThrowsAny重载.
Assert.ThrowsAny<Foobar>(() => a.DoFoo(123));
Run Code Online (Sandbox Code Playgroud)
只是出于"最佳实践"的问题,在创建异常时,总是以"异常"一词结束异常的名称.上面的例外就变成了FoobarException,这清楚地表明了这个类的用途.这是C#编码最佳实践,是非常合理的建议.
| 归档时间: |
|
| 查看次数: |
1521 次 |
| 最近记录: |