2012-02-14 2 views
1

의 InnerException 내가 특정 시나리오에서 내부 예외가 예외를 throw해야하는 방법을 테스트하기 위해 노력하고있어 설정 :단위 테스트는

mockInvoiceRepository.Setup(x => x.PersistInvoice(invoice, false)).Throws(new Exception()); 

나는의 InnerException를 설정해야합니다 제외하고는 코드 줄이 괜찮습니다 던져진 새로운 예외에 대해. 나는 읽기 전용 속성이기 때문에 이것을 할 수 없다. 가상이 아니기 때문에 그것을 조롱 할 수도 없다.

달성 방법에 대한 아이디어가 있으십니까?

답변

4

이 방법이 유용할까요? 여기에서는 문자열 메시지 (신경 쓰이지 않는)와 내부 예외를 사용하는 overloaded constructor of Exception을 사용하고 있습니다.

var innerException = new ExpectedInnerException(); 
mockInvoiceRepository.Setup(x => x.PersistInvoice(invoice, false)) 
        .Throws(new Exception("", innerException)); 
+0

오, 사실 나는 당신이 생성자를 통해 설정할 수 있다는 것을 몰랐습니다. – AnonyMouse

관련 문제