【发布时间】:2013-10-22 01:53:59
【问题描述】:
我想写一个测试,检查我的抽象类构造函数是否正确处理了无效参数。我写了一个测试:
[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void MyClassCtorTest()
{
var dummy = Substitute.For<MyClass>("invalid-parameter");
}
这个测试没有通过,因为 NSubstitute 抛出了 TargetInvocationException 而不是 ArgumentException。我寻求的实际例外实际上是InnerException 中的TargetInvocationException。我可以编写一个辅助方法,例如:
internal static class Util {
public static void UnpackException(Action a) {
try {
a();
} catch (TargetInvocationException e) {
throw e.InnerException;
} catch (Exception) {
throw new InvalidOperationException("Invalid exception was thrown!");
}
}
}
但我想,应该有某种通用的方法来解决这个问题。有吗?
【问题讨论】:
标签: c# testing nsubstitute targetinvocationexception