我正在使用 Visual Studio 的集成框架编写一些单元测试。我需要编写一些测试用例,这些用例在抛出适当的异常时通过。问题是我需要测试的异常是嵌套在更一般的异常中的内部异常。是否有一些简单的解决方案,或者我是否需要扩展整个功能。我目前正在使用 [ExpectedException] 属性,但在这种情况下它不会有太大用处。
我也很好奇当我们使用 [ExpectedException] 时会发生什么,同时我们在测试本身中也有一些 Assert 逻辑。条件是否被评估(抛出异常并且 Assert 语句被证明是有效的)或测试是否在抛出正确的异常后立即通过?
最佳答案
这不是一个完整的解决方案,但在 NUnit 中,您可以做这样的事情:
var ex = Assert.Throws<Exception>(() => thing.ThatThrows());
Assert.That(ex.InnerException, Is.TypeOf<BadException>() );
也许您可以在您的测试框架中?
关于c# - 内部异常的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28151897/