【发布时间】:2015-03-24 23:18:03
【问题描述】:
我正在使用 Visual Studio 的集成框架编写一些单元测试。我需要编写一些在引发适当异常时通过的测试用例。问题是我需要测试的异常是嵌套在更一般的异常中的内部异常。是否有一些简单的解决方案或者我需要扩展整个功能。我目前正在使用 [ExpectedException] 属性,但在这种情况下它不会有什么好处。
我也很好奇当我们使用 [ExpectedException] 时会发生什么,而我们在测试本身中也有一些 Assert 逻辑。是对条件进行评估(抛出异常并且 Assert 语句被证明是有效的)还是在抛出正确的异常后立即通过测试?
【问题讨论】:
-
不要使用
ExpectedException属性(测试可以通过,因为某些排列阶段抛出了相同的异常而不是行为阶段);使用Assert.Throws<YourException> -
VS 的框架中没有“Throws”方法。在大多数情况下,我使用自定义异常,因此应该使属性的使用足够准确。
标签: c# entity-framework unit-testing vs-unit-testing-framework