moq - 如果类吞下异常,则尚未调用如何验证方法

时间:2009-09-18 17:03:07

标签: c# unit-testing moq

我正在尝试使用Moq来测试一个相当复杂的类,并且遇到了问题。

我正在尝试验证方法是否未被调用,并且通常通过设置MockBehavior.Strict这很简单,但是这里该类有自己的错误报告机制,因此它吞下了Moq抛出的异常。

。验证测试结束时的所有方法也都很好,这真的很奇怪。这是Moq中的一个错误,是否有任何变通方法?

我也试过在这个方法上设置回调并在其中执行Assert.Fail,但是当它被吞下时,测试框架(VS 2008内置测试)也没有得到通知。 。

我正在使用Moq 2.6.1014.1。 (没时间升级到moq 3)

1 个答案:

答案 0 :(得分:12)

嗯,这很尴尬,我已经设法解决了。

在3.0中你可以这样做:

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<object>()), Times.Never());

仍然不明白为什么VerifyAll不起作用,但这似乎符合法案。我会留下这个问题,万一其他人正在寻找类似的东西。