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:我已經添加了兩種方法的示例。如果您想了解更多信息,請告訴我。 –
這些都是很好的例子,謝謝! –