1
내 추상 클래스 생성자가 잘못된 인수를 올바르게 처리하는지 테스트 검사를 작성하고 싶습니다. NSubstitute 대신 ArgumentException
의 TargetInvocationException
을 발생하기 때문에,NSubstitute의 TargetInvocationException
[TestMethod]
[ExpectedException(typeof(ArgumentException))]
public void MyClassCtorTest()
{
var dummy = Substitute.For<MyClass>("invalid-parameter");
}
이 테스트를 통과하지 : 나는 테스트를 썼다. 실제 예외는 인 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!");
}
}
}
그러나 나는 그 문제를 해결하기위한 일반적인 방법이 있어야한다고 생각한다. 하나 있습니까?
... "당신을 수동으로 내부 예외에 주장하는 방법 : 나는 우리가
TargetInvocationException
에 파고하는 이유는 명확하지 않다, 그러나 여기에서 예를 들어 어쨌든입니다으로이 이전 옵션에 덜 바람직하다 생각 ... "? –@hbob : 두 가지 접근법의 예를 추가했습니다. 더 자세한 정보가 필요하면 알려주세요. –
좋은 예입니다. 감사합니다! –