views:

283

answers:

1

I am trying to test a fairly complex class using Moq and am running into a problem.

I am trying to verify that a method does NOT get called, and usually this is simple to do by setting MockBehavior.Strict, but here however the class has its own error reporting mechanism so it swallows the exception being thrown by Moq.

.VerifyAll method at the end of the test also passes fine, which is really weird. Is this a bug in Moq, are there any workarounds?

I've also tried setting up a callback on this method and doing Assert.Fail inside of it, but as this gets swallowed as well, the testing framework (VS 2008 builtin test) doesn't get notified of it...

I am using Moq 2.6.1014.1. (didn't have time to upgrade to moq 3 yet)

+2  A: 

Well, this is embarassing, I've managed to solve it.

in 3.0 you can do this: mFMXmlC.Verify( f=>f.Put_Queue_Response(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()), Times.Never());

Still don't understand why VerifyAll didn't work, but this seems to fit the bill anyway. I'll leave the question up, in case someone else is looking for something similar.

Robert Ivanc
You might want to repost this at http://groups.google.com/group/moqdisc?pli=1 to determine if it is a bug or expected behavior.
TrueWill