2009-09-18 89 views
6

我想用Moq来测试一个相当复杂的类,并且遇到问题。moq - 如果验证方法没有被调用,如果类吞下异常

我想验证一个方法不会被调用,通常这很容易通过设置MockBehavior.Strict来完成,但是在这里但是这个类有它自己的错误报告机制,所以它吞下了由Moq引发的异常。

.VerifyAll方法在测试结束时也通过很好,这真的很奇怪。这是Moq中的一个错误,是否有任何解决方法?

我也试着在这个方法上设置一个回调函数,并且在它内部做Assert.Fail,但是当它也被吞下时,测试框架(VS 2008内置测试)没有得到它的通知。 ..

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

回答

11

好吧,这是令人尴尬的,我设法解决它。

在3.0,你可以这样做:

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

还是不明白为什么VerifyAll没有工作,但是这似乎无论如何,以适应该法案。我会留下这个问题,以防别人正在寻找类似的东西。

+0

您可能想要在http://groups.google.com/group/moqdisc?pli=1上转发此信息,以确定它是否是错误或预期行为。 – TrueWill 2009-09-18 17:28:39

相关问题