2009-09-18 11 views
6

J'essaie de tester une classe assez complexe en utilisant Moq et je rencontre un problème. J'essaie de vérifier qu'une méthode n'est pas appelée, et généralement c'est simple à faire en définissant MockBehavior.Strict, mais ici, cependant, la classe a son propre mécanisme de rapport d'erreurs, donc elle avale l'exception lancée par Moq .moq - comment vérifier que la méthode n'a pas été appelée si la classe avale les exceptions

.VerifyToute méthode à la fin du test passe également très bien, ce qui est vraiment bizarre. Est-ce un bug dans Moq, existe-t-il des solutions de contournement?

J'ai également essayé de mettre en place un rappel sur cette méthode et de faire Assert.Fail à l'intérieur, mais comme cela est également avalé, le framework de test (test interne VS 2008) n'est pas averti. ..

J'utilise Moq 2.6.1014.1. (n'a pas encore eu le temps de passer à moq 3)

Répondre

11

Eh bien, c'est embarrassant, j'ai réussi à le résoudre.

Dans la version 3.0, vous pouvez le faire:

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

ne comprennent toujours pas pourquoi VerifyAll n'a pas fonctionné, mais cela semble correspondre à la facture de toute façon. Je vais laisser la question en suspens, au cas où quelqu'un d'autre chercherait quelque chose de similaire.

+0

Vous pouvez renvoyer le message sur http://groups.google.com/group/moqdisc?pli=1 pour déterminer s'il s'agit d'un bogue ou d'un comportement attendu. – TrueWill

Questions connexes