单元测试设置innerexception

时间:2012-02-14 02:38:40

标签: asp.net-mvc unit-testing

我正在尝试测试一种方法,该方法在特定场景中应抛出一个具有内部异常的异常:

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

这行代码很好,除了我需要为抛出的新异常设置innerexception。我不能这样做,因为它是一个只读属性,也不能嘲笑它,因为它不是虚拟的。

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:5)

这会有用吗?这里我使用的是带有字符串消息的overloaded constructor of Exception(您似乎并不关心)和内部异常。

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