1
我想写一个测试检查,我的抽象类构造函数是否正确处理无效参数。我写了一个测试:NSububitute中的TargetInvocationException
[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void MyClassCtorTest()
{
var dummy = Substitute.For<MyClass>("invalid-parameter");
}
这个测试没有通过,因为NSubstitute抛出一个TargetInvocationException
而不是ArgumentException
。我寻求的实际例外实际上是TargetInvocationException
的InnerException
。我可以写一个帮手方法,如:
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!");
}
}
}
但我想,那应该是某种解决这个问题的一般方法。有一个吗?
你怎么” ...手动断言内部异常上......“? –
@hbob:我已经添加了两种方法的示例。如果您想了解更多信息,请告诉我。 –
这些都是很好的例子,谢谢! –